Partilhar via


Métricas do sistema de vários monitores

A função GetSystemMetrics retorna valores para o monitor primário, exceto para SM_CXMAXTRACK e SM_CYMAXTRACK, que se referem a toda a área de trabalho. As seguintes métricas são as mesmas para todos os drivers de dispositivo: SM_CXCURSOR, SM_CYCURSOR, SM_CXICON, SMCYICON. Os seguintes recursos de exibição são os mesmos para todos os monitores: LOGPIXELSX, LOGPIXELSY, DESTOPHORZRES, DESKTOPVERTRES.

GetSystemMetrics também tem constantes que se referem apenas a um sistema de Vários Monitores. SM_XVIRTUALSCREEN e SM_YVIRTUALSCREEN identificar o canto superior esquerdo da tela virtual, SM_CXVIRTUALSCREEN e SM_CYVIRTUALSCREEN são as medidas verticais e horizontais da tela virtual, SM_CMONITORS é o número de monitores anexados à área de trabalho e SM_SAMEDISPLAYFORMAT indica se todos os monitores na área de trabalho têm o mesmo formato de cor.

Para obter informações sobre um único monitor de exibição ou todos os monitores de exibição em uma área de trabalho, use EnumDisplayMonitors. O retângulo da janela da área de trabalho retornada por GetWindowRect ou GetClientRect é sempre igual ao retângulo do monitor primário, para compatibilidade com aplicativos existentes. Assim, o resultado de

GetWindowRect(GetDesktopWindow(), &rc);

será:

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

Para alterar a área de trabalho de um monitor, chame SystemParametersInfo com SPI_SETWORKAREA e pvParam apontando para uma estrutura RECT que está no monitor desejado. Se pvParam for NULL, a área de trabalho do monitor primário será modificada. Usar SPI_GETWORKAREA sempre retorna a área de trabalho do monitor primário. Para obter a área de trabalho de um monitor diferente do monitor primário, chame GetMonitorInfo.