c++获取系统分辨率
时间: 2024-01-16 10:01:49 浏览: 64
可以使用 Windows API 来获取系统分辨率,具体代码如下:
```cpp
#include <Windows.h>
int main()
{
int width = GetSystemMetrics(SM_CXSCREEN);
int height = GetSystemMetrics(SM_CYSCREEN);
printf("Screen resolution: %d x %d\n", width, height);
return 0;
}
```
其中,`GetSystemMetrics` 是 Windows API 中的一个函数,用于获取系统指标。`SM_CXSCREEN` 和 `SM_CYSCREEN` 分别表示屏幕的宽度和高度。
相关问题
C++获取屏幕分辨率
在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;
}
```
请注意,这只是一个简单的示例,实际应用中可能需要处理更复杂的情况,比如跨线程、错误处理等。
C++ 注册表获取系统分辨率
可以通过以下代码获取系统分辨率:
```cpp
#include <Windows.h>
int main()
{
int screenWidth, screenHeight;
// 获取屏幕分辨率
screenWidth = GetSystemMetrics(SM_CXSCREEN);
screenHeight = GetSystemMetrics(SM_CYSCREEN);
// 输出屏幕分辨率
printf("Screen Resolution: %d x %d\n", screenWidth, screenHeight);
return 0;
}
```
其中,`GetSystemMetrics` 函数可以获取系统的各种信息,`SM_CXSCREEN` 和 `SM_CYSCREEN` 分别表示屏幕的宽度和高度。
阅读全文