Varias métricas del sistema de supervisión
La función GetSystemMetrics devuelve valores para el monitor principal, excepto para SM_CXMAXTRACK y SM_CYMAXTRACK, que hacen referencia a todo el escritorio. Las métricas siguientes son las mismas para todos los controladores de dispositivos: SM_CXCURSOR, SM_CYCURSOR, SM_CXICON, SMCYICON. Las siguientes funcionalidades de visualización son las mismas para todos los monitores: LOGPIXELSX, LOGPIXELSY, DESTOPHORZRES, DESKTOPVERTRES.
GetSystemMetrics también tiene constantes que hacen referencia solo a un sistema de Multiple Monitor. SM_XVIRTUALSCREEN y SM_YVIRTUALSCREEN identifican la esquina superior izquierda de la pantalla virtual, SM_CXVIRTUALSCREEN y SM_CYVIRTUALSCREEN son las medidas verticales y horizontales de la pantalla virtual, SM_CMONITORS es el número de monitores conectados al escritorio y SM_SAMEDISPLAYFORMAT indica si todos los monitores del escritorio tienen el mismo formato de color.
Para obtener información sobre un solo monitor de pantalla o todos los monitores de pantalla de un escritorio, use EnumDisplayMonitors. El rectángulo de la ventana de escritorio devuelta por GetWindowRect o GetClientRect siempre es igual al rectángulo del monitor principal, por compatibilidad con las aplicaciones existentes. Por lo tanto, el resultado de
GetWindowRect(GetDesktopWindow(), &rc);
será:
rc.left = 0;
rc.top = 0;
rc.right = GetSystemMetrics (SM_CXSCREEN);
rc.bottom = GetSystemMetrics (SM_CYSCREEN);
Para cambiar el área de trabajo de un monitor, llame a SystemParametersInfo con SPI_SETWORKAREA y pvParam que apunte a una estructura RECT que se encuentra en el monitor deseado. Si pvParam es NULL, se modifica el área de trabajo del monitor principal. El uso de SPI_GETWORKAREA siempre devuelve el área de trabajo del monitor principal. Para obtener el área de trabajo de un monitor distinto del monitor principal, llame a GetMonitorInfo.