多个监视器系统指标

GetSystemMetrics 函数返回主监视器的值,但引用整个桌面的 SM_CXMAXTRACK 和 SM_CYMAXTRACK 除外。 对于所有设备驱动程序,以下指标相同:SM_CXCURSOR、SM_CYCURSOR、SM_CXICON、SMCYICON。 对于所有监视器,以下显示功能相同:LOGPIXELSX、LOGPIXELSY、DESTOPHORZRES、DESKTOPVERTRES。

GetSystemMetrics 还具有仅引用多个监视器系统的常量。 SM_XVIRTUALSCREEN和SM_YVIRTUALSCREEN识别虚拟屏幕左上角,SM_CXVIRTUALSCREEN和SM_CYVIRTUALSCREEN是虚拟屏幕的垂直和水平度量,SM_CMONITORS是附加到桌面的监视器数,SM_SAMEDISPLAYFORMAT指示桌面上的所有监视器是否具有相同的颜色格式。

若要获取有关单个显示监视器或桌面中所有显示监视器的信息,请使用 EnumDisplayMonitors。 GetWindowRectGetClientRect 返回的桌面窗口矩形始终等于主监视器的矩形,以便与现有应用程序兼容。 因此,结果

GetWindowRect(GetDesktopWindow(), &rc);

将是:

rc.left = 0; 
rc.top = 0; 
rc.right = GetSystemMetrics (SM_CXSCREEN); 
rc.bottom = GetSystemMetrics (SM_CYSCREEN);

若要更改监视器的工作区域,请使用 SPI_SETWORKAREA 和 pvParam 调用 SystemParametersInfo,指向所需监视器上的 RECT 结构。 如果 pvParamNULL,则会修改主监视器的工作区域。 使用SPI_GETWORKAREA始终返回主监视器的工作区域。 若要获取主监视器以外的监视器的工作区,请调用 GetMonitorInfo