![](https://csdnimg.cn/release/download_crawler_static/86344769/bg1.jpg)
原
关于获取多个屏幕分辨率以及进行
一些设置
2017 年 02 月 04 日 23:13:04 swartz_lubel 阅读数:3157 标签: qt 更多
个人分类: Qt
Windows 下提示显示器信息主要通过两个函数实现。一个是 EnumDisplayDevices(), 另
一个是 EnumDisplayMonitors().
EnumDisplayDevices()枚举所有显示设备,而 EnumDisplayMonitors 枚举的是所有显示
器。
显示设备和显示器不一样,比如显卡算显示设备,但是不是显示器。
EnumDisplayMonitors()还会枚举出不可见的伪显示器,如果只是想得到实际的显示器数目
的话可以用 GetSystemMetrics(SM_CMONITORS),该函数不包括虚拟显示器。
MonitorInfoex 和 MonitorInfo 在这两个结构中保存着相应显示器的相关信息,如坐标、是
否为主显示器等
GetMonitorInfo ( ) 取得指定显示器的相关信息,如物理显示区大小等
MonitorFromPoint ( ) 取得指定点所在的显示器句柄
MonitorFromRect ( ) 取得指定矩形所在的显示器句柄
MonitorFromWindow( ) 取得指定窗口所在的显示器句柄
MonitorEnumProc( ) 当应用程序调用 EnumDisplayMonitors ( )查询显示器个数时,系统自
动为每一个显示器调用一次该函数。应用程序可以依此判断显示器的个数、位置及显示区
域的大小等信息
函数名:MonitorEnumProc()
输入参数:HMONITOR hMonitor ---显示器句柄
HDC hdcMonitor ----显示器 DC 句柄
LPRECT lprcMonitor-----
LPARAM dwData-----EnumDisplayMonitors 传来的数据
返回:bool
功能:若返回为真,EnumDisplayMonitors 继续枚举,
若返回为假,EnumDisplayMonitors 停止枚举,从而获得显示器信息
MonitorAdapter.h
1. #include <atlstr.h>
2. #include <vector>
3. #include <WinDef.h>
4. #include <tchar.h>
5. using std::vector;