Windows下用GetSystemMetrics获取主显示器分辨率;2. 多显示器可用EnumDisplayMonitors结合GetMonitorInfo;3. 跨平台可选SDL2、GLFW或Qt库。

在C++中获取显示器屏幕分辨率,主要依赖操作系统提供的API。Windows平台下最常用的方法是使用Win32 API中的GetSystemMetrics函数,简单高效。
该函数可以获取系统各类度量值,其中SM_CXSCREEN和SM_CYSCREEN分别代表屏幕的宽度和高度(像素单位)。
示例代码:
#include <iostream>
#include <windows.h>
int main() {
int width = GetSystemMetrics(SM_CXSCREEN);
int height = GetSystemMetrics(SM_CYSCREEN);
std::cout << "屏幕分辨率: " << width << "x" << height << std::endl;
return 0;
}
编译运行后即可输出当前主显示器的分辨率。
立即学习“C++免费学习笔记(深入)”;
如果系统连接了多个显示器,可以使用EnumDisplayMonitors配合GetMonitorInfo来逐个获取每个显示器的分辨率信息。
关键步骤:
EnumDisplayMonitors枚举所有显示器GetMonitorInfo获取每个显示器的矩形区域(rcMonitor)这种方式适合需要精确控制多屏显示的应用场景。
上述方法仅适用于Windows系统。若项目需跨平台支持(如Linux或macOS),可借助第三方库:
SDL_GetDesktopDisplayMode
glfwGetVideoMode
QScreen::availableGeometry获取这些库封装了不同系统的底层调用,便于统一处理。
基本上就这些。Windows下直接用GetSystemMetrics最快,复杂需求再考虑枚举显示器或多平台方案。不复杂但容易忽略头文件包含和链接设置。
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号