Teilen über


Mehrere Monitorsystemmetriken

Die GetSystemMetrics--Funktion gibt Werte für den primären Monitor zurück, mit Ausnahme von SM_CXMAXTRACK und SM_CYMAXTRACK, die auf den gesamten Desktop verweisen. Die folgenden Metriken sind für alle Gerätetreiber identisch: SM_CXCURSOR, SM_CYCURSOR, SM_CXICON, SMCYICON. Die folgenden Anzeigefunktionen sind für alle Monitore identisch: LOGPIXELSX, LOGPIXELSY, DESTOPHORZRES, DESKTOPVERTRES.

GetSystemMetrics enthält auch Konstanten, die nur auf ein System mit mehreren Monitoren verweisen. SM_XVIRTUALSCREEN und SM_YVIRTUALSCREEN die obere linke Ecke des virtuellen Bildschirms identifizieren, SM_CXVIRTUALSCREEN und SM_CYVIRTUALSCREEN die vertikalen und horizontalen Maße des virtuellen Bildschirms sind, SM_CMONITORS die Anzahl der Monitore, die an den Desktop angeschlossen sind, und SM_SAMEDISPLAYFORMAT gibt an, ob alle Monitore auf dem Desktop das gleiche Farbformat aufweisen.

Verwenden Sie EnumDisplayMonitors, um Informationen zu einem einzelnen Anzeigemonitor oder allen Anzeigemonitoren auf einem Desktop abzurufen. Das Rechteck des Desktopfensters, das von GetWindowRect oder GetClientRect- zurückgegeben wird, entspricht immer dem Rechteck des primären Monitors, um Kompatibilität mit vorhandenen Anwendungen zu gewährleisten. So das Ergebnis von

GetWindowRect(GetDesktopWindow(), &rc);

wird sein:

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

Rufen Sie zum Ändern des Arbeitsbereichs eines Monitors SystemParametersInfo mit SPI_SETWORKAREA und pvParam- auf eine RECT- Struktur auf, die auf dem gewünschten Monitor angezeigt wird. Wenn pvParamNULList, wird der Arbeitsbereich des primären Monitors geändert. Die Verwendung von SPI_GETWORKAREA gibt immer den Arbeitsbereich des primären Monitors zurück. Rufen Sie GetMonitorInfo-auf, um den Arbeitsbereich eines anderen Monitors als den primären Monitor abzurufen.