C++ Windows 获取所有显示器句柄和信息
要遍历所有显示器并获取句柄,可以使用 Windows API 函数 EnumDisplayMonitors() 和 GetMonitorInfo()。
下面是一个示例代码:
#include <iostream>
#include <windows.h>
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
MONITORINFOEX monitorInfo;
monitorInfo.cbSize = sizeof(MONITORINFOEX);
GetMonitorInfo(hMonitor, &monitorInfo);
std::cout << 'Monitor: ' << monitorInfo.szDevice << std::endl;
std::cout << 'Handle: ' << hMonitor << std::endl;
std::cout << 'Position: (' << monitorInfo.rcMonitor.left << ', ' << monitorInfo.rcMonitor.top << ')' << std::endl;
std::cout << 'Size: ' << monitorInfo.rcMonitor.right - monitorInfo.rcMonitor.left << 'x' << monitorInfo.rcMonitor.bottom - monitorInfo.rcMonitor.top << std::endl;
std::cout << std::endl;
return TRUE;
}
int main()
{
EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, 0);
return 0;
}
该代码通过调用 EnumDisplayMonitors() 函数来枚举所有显示器,每次调用时都会调用 MonitorEnumProc() 回调函数来处理每个显示器。在回调函数中,我们可以通过 GetMonitorInfo() 函数获取显示器的详细信息,包括设备名称、句柄、位置和大小等。
请注意,此代码只是一个示例,可能需要根据实际情况进行适当的修改。
原文地址: https://www.cveoy.top/t/topic/pcgr 著作权归作者所有。请勿转载和采集!