Più metriche di sistema di monitoraggio
La funzione GetSystemMetrics restituisce valori per il monitoraggio primario, ad eccezione di SM_CXMAXTRACK e SM_CYMAXTRACK, che fanno riferimento all'intero desktop. Le metriche seguenti sono le stesse per tutti i driver di dispositivo: SM_CXCURSOR, SM_CYCURSOR, SM_CXICON, SMCYICON. Le funzionalità di visualizzazione seguenti sono le stesse per tutti i monitor: LOGPIXELSX, LOGPIXELSY, DESTOPHORZRES, DESKTOPVERTRES.
GetSystemMetrics include anche costanti che fanno riferimento solo a un sistema di monitoraggio multiplo. SM_XVIRTUALSCREEN e SM_YVIRTUALSCREEN identificare l'angolo superiore sinistro dello schermo virtuale, SM_CXVIRTUALSCREEN e SM_CYVIRTUALSCREEN sono le misurazioni verticali e orizzontali dello schermo virtuale, SM_CMONITORS è il numero di monitor collegati al desktop e SM_SAMEDISPLAYFORMAT indica se tutti i monitor sul desktop hanno lo stesso formato di colore.
Per ottenere informazioni su un singolo monitor di visualizzazione o su tutti i monitor di visualizzazione in un desktop, usare EnumDisplayMonitors. Il rettangolo della finestra desktop restituito da GetWindowRect o GetClientRect è sempre uguale al rettangolo del monitoraggio primario, per garantire la compatibilità con le applicazioni esistenti. Di conseguenza, il risultato di
GetWindowRect(GetDesktopWindow(), &rc);
sarà:
rc.left = 0;
rc.top = 0;
rc.right = GetSystemMetrics (SM_CXSCREEN);
rc.bottom = GetSystemMetrics (SM_CYSCREEN);
Per modificare l'area di lavoro di un monitor, chiamare SystemParametersInfo con SPI_SETWORKAREA e pvParam che punta a una struttura RECT presente nel monitor desiderato. Se pvParam è NULL, l'area di lavoro del monitoraggio primario viene modificata. L'uso di SPI_GETWORKAREA restituisce sempre l'area di lavoro del monitoraggio primario. Per ottenere l'area di lavoro di un monitor diverso dal monitoraggio primario, chiamare GetMonitorInfo.