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 ' << dwData << ':' << std::endl;
std::cout << ' Position: (' << monitorInfo.rcMonitor.left << ', ' << monitorInfo.rcMonitor.top << ')' << std::endl;
std::cout << ' Resolution: ' << monitorInfo.rcMonitor.right - monitorInfo.rcMonitor.left << 'x' << monitorInfo.rcMonitor.bottom - monitorInfo.rcMonitor.top << std::endl;
return TRUE;
}
int main()
{
// 枚举所有显示器
EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, 0);
return 0;
}
该代码将输出每个显示器的位置和分辨率。其中,monitorInfo.rcMonitor 表示显示器的矩形区域,left 和 top 表示显示器的左上角坐标,right 和 bottom 表示显示器的右下角坐标。
原文地址: http://www.cveoy.top/t/topic/pb6M 著作权归作者所有。请勿转载和采集!