多个监视器系统指标
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。 GetWindowRect 或 GetClientRect 返回的桌面窗口矩形始终等于主监视器的矩形,以便与现有应用程序兼容。 因此,结果
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。