Пытаясь запустить цикл for через физические мониторы, но дескрипторы меня очень смущают, у меня есть псевдокод, который работает по следующим направлениям:
int tempCounter=0
for(counter = number of monitors;counter > 0;counter--){
RECT tempRECT;
HDC tempHDC;
Get resolution of DC handle (counter) -> tempRECT;
arrayList[tempCounter] = tempRECT;
Get virtual work area of DC handle (counter) -> tempRECT;
arrayList[tempCounter++] = tempRECT;
tempCounter++;
}
GetSystemMetrics (80) для подсчета мониторов, достаточно ли это надежно для использования или каких-либо исключений может не получиться?
Я знаю, что там немногое, но просмотр MSDN просто заставил меня ходить по кругу, и я не очень компетентен в программировании.
Это может быть так просто, как это:
#include <Windows.h>
#include <stdio.h>
BOOL CALLBACK MonitorEnumProc(
HMONITOR hMonitor,
HDC hdcMonitor,
LPRECT lprcMonitor,
LPARAM dwData
)
{
printf("%dx%d\n", lprcMonitor->right, lprcMonitor->bottom);
}
int main(int argc, char*argv[]) {
EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, 0);
}