-1

尝试通过物理监视器运行 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 只是让我在圈子里转来转去,而且我在编程方面不是很胜任。

4

1 回答 1

2

它可以像这样简单:

#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);
}
于 2014-10-11T09:37:01.703 回答