Mehrere Systemmetriken überwachen
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 gleich: SM _ CXCURSOR, SM _ CYCURSOR, SM _ CXICON, SMCYICON. Die folgenden Anzeigefunktionen sind für alle Monitore identisch: LOGPIXELSX, LOGPIXELSY, DESTOPHORZRES, DESKTOPVERTRES.
GetSystemMetrics verfügt auch über Konstanten, die nur auf ein System mit mehreren Monitoren verweisen. SMHEFTRTUALSCREEN und SM YVIRTUALSCREEN identifizieren die obere linke Ecke des virtuellen _ _ Bildschirms, SM _ CXVIRTUALSCREEN und SM CYVIRTUALSCREEN sind die vertikalen und horizontalen Messungen des virtuellen _ _ Bildschirms, SM CMONITORS ist die Anzahl der an den Desktop angefügten Monitore, 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 zu allen Anzeigemonitoren auf einem Desktop zu erhalten. Das Rechteck des Desktopfensters, das von GetWindowRect oder GetClientRect zurückgegeben wird, ist aus Kompatibilitäts- und Kompatibilitäts- mit vorhandenen Anwendungen immer gleich dem Rechteck des primären Monitors. Das Ergebnis von
GetWindowRect(GetDesktopWindow(), &rc);
wird sein:
rc.left = 0;
rc.top = 0;
rc.right = GetSystemMetrics (SM_CXSCREEN);
rc.bottom = GetSystemMetrics (SM_CYSCREEN);
Um den Arbeitsbereich eines Monitors zu ändern, rufen Sie SystemParametersInfo mit SPI _ SETWORKAREA und pvParam auf, die auf eine RECT-Struktur verweisen, die sich auf dem gewünschten Monitor befindet. Wenn pvParam NULL ist, wird der Arbeitsbereich des primären Monitors geändert. Bei Verwendung von _ SPI GETWORKAREA wird immer der Arbeitsbereich des primären Monitors zurückgegeben. Rufen Sie GetMonitorInfoauf, um den Arbeitsbereich eines anderen Monitors als des primären Monitors zu erhalten.