c++获取多个屏幕的宽高
时间: 2024-03-08 12:51:31 浏览: 191
要获取多个屏幕的宽高,您可以使用Windows API函数EnumDisplayMonitors,使用该函数可以遍历每个屏幕,并获取每个屏幕的信息,包括宽度和高度。
以下是一个简单的C++代码示例,可以获取连接到计算机上的所有屏幕的宽度和高度:
```c++
#include <Windows.h>
#include <vector>
#include <iostream>
using namespace std;
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
MONITORINFOEX monitorInfo;
monitorInfo.cbSize = sizeof(MONITORINFOEX);
if (GetMonitorInfo(hMonitor, &monitorInfo))
{
RECT& r = monitorInfo.rcMonitor;
int width = r.right - r.left;
int height = r.bottom - r.top;
vector<pair<int, int>>* screenSize = (vector<pair<int, int>>*)dwData;
screenSize->push_back(make_pair(width, height));
}
return TRUE;
}
int main()
{
vector<pair<int, int>> screenSize;
EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, (LPARAM)&screenSize);
for (size_t i = 0; i < screenSize.size(); i++)
{
cout << "Screen " << i + 1 << " width: " << screenSize[i].first << ", height: " << screenSize[i].second << endl;
}
return 0;
}
```
该示例代码使用EnumDisplayMonitors函数枚举所有屏幕,并将每个屏幕的宽度和高度存储在一个vector容器中。然后,该代码遍历vector并打印每个屏幕的宽度和高度。
阅读全文