C++获取屏幕分辨率
时间: 2024-09-30 20:12:50 浏览: 26
在C++中,没有直接提供像Java那样的`Toolkit`或`Screen`类来获取屏幕分辨率。不过你可以利用平台相关的API来达到这个目的。例如,在Windows系统上可以使用`WinUser.h`头文件里的函数。以下是一个使用Cygwin下的跨平台方法:
```cpp
#include <windows.h>
#include <iostream>
int getDisplayResolution() {
HDC hdc = GetDC(NULL); // 获取设备上下文
HGDIOBJ oldHdc = SelectObject(hdc, GetStockObject(WHITE_PEN)); // 选择笔刷
RECT rect;
GetWindowRect(GetForegroundWindow(), &rect); // 获取当前窗口的矩形
AdjustWindowRect(&rect, WS_VISIBLE, FALSE); // 调整边界
int width = rect.right - rect.left; // 屏幕宽度
int height = rect.bottom - rect.top; // 屏幕高度
ReleaseDC(NULL, hdc); // 释放设备上下文
SelectObject(hdc, oldHdc); // 恢复原始笔刷
return {width, height};
}
int main() {
auto resolution = getDisplayResolution();
std::cout << "屏幕分辨率: " << resolution.first << "x" << resolution.second << std::endl;
return 0;
}
```
请注意,这只是一个简单的示例,实际应用中可能需要处理更复杂的情况,比如跨线程、错误处理等。
阅读全文