Windows中的Windows获取屏幕分辨率

时间:2013-07-06 16:43:00

标签: c windows mingw screen-resolution

使用普通C,(不是C ++ / C#/ Objective-C)如何在Windows中获得屏幕分辨率?

我的编译器是MingW(不确定是否相关)。我在网上找到的所有解决方案都是针对C ++或其他一些C变种。

3 个答案:

答案 0 :(得分:5)

使用GetSystemMetrics()

DWORD dwWidth = GetSystemMetrics(SM_CXSCREEN);
DWORD dwHeight = GetSystemMetrics(SM_CYSCREEN);

答案 1 :(得分:0)

您的问题已经得到解答:How to get the Monitor Screen Resolution from a hWnd?

HMONITOR monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
MONITORINFO info;
info.cbSize = sizeof(MONITORINFO);
GetMonitorInfo(monitor, &info);
int monitor_width = info.rcMonitor.right - info.rcMonitor.left;
int monitor_height = info.rcMonitor.bottom - info.rcMonitor.top;

答案 2 :(得分:0)

您必须在代码中加入windows.h才能使用Windows API。 MingW可能已经附带此头文件。

#include <windows.h>

void GetMonitorResolution(int *horizontal, int *vertical) {
    *height = GetSystemMetrics(SM_CYSCREEN);
    *width = GetSystemMetrics(SM_CXSCREEN);
}