要遍历所有显示器并获取句柄,可以使用 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() 函数获取显示器的详细信息,包括设备名称、句柄、位置和大小等。

请注意,此代码只是一个示例,可能需要根据实际情况进行适当的修改。

C++ Windows 获取所有显示器句柄和信息

原文地址: https://www.cveoy.top/t/topic/pcgr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录