Windows在C中获取屏幕分辨率

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

我的编译器是MingW(不确定是否相关)。 我在网上find的所有解决scheme都是针对C ++或其他一些C版本的。

使用GetSystemMetrics()

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

你的问题已经得到解答: 如何从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; 

您将不得不通过在代码中包含windows.h来使用Windows API。 MingW可能已经有了这个头文件。

 #include <windows.h> void GetMonitorResolution(int *horizontal, int *vertical) { *height = GetSystemMetrics(SM_CYSCREEN); *width = GetSystemMetrics(SM_CXSCREEN); }