Partager via


Métriques système de surveillance multiples

La fonction GetSystemMetrics retourne des valeurs pour le moniteur principal, à l’exception des SM_CXMAXTRACK et des SM_CYMAXTRACK, qui font référence à l’ensemble du bureau. Les métriques suivantes sont les mêmes pour tous les pilotes de périphérique : SM_CXCURSOR, SM_CYCURSOR, SM_CXICON, SMCYICON. Les fonctionnalités d’affichage suivantes sont identiques pour tous les moniteurs : LOGPIXELSX, LOGPIXELSY, DESTOPHORZRES, DESKTOPVERTRES.

GetSystemMetrics a également des constantes qui font référence uniquement à un système Multi Monitor. SM_XVIRTUALSCREEN et SM_YVIRTUALSCREEN identifier le coin supérieur gauche de l’écran virtuel, SM_CXVIRTUALSCREEN et SM_CYVIRTUALSCREEN sont les mesures verticales et horizontales de l’écran virtuel, SM_CMONITORS est le nombre de moniteurs attachés au bureau et SM_SAMEDISPLAYFORMAT indique si tous les moniteurs du bureau ont le même format de couleur.

Pour obtenir des informations sur un seul moniteur d’affichage ou tous les moniteurs d’affichage d’un bureau, utilisez EnumDisplayMonitors. Le rectangle de la fenêtre de bureau retournée par GetWindowRect ou GetClientRect est toujours égal au rectangle du moniteur principal, pour la compatibilité avec les applications existantes. Ainsi, le résultat de

GetWindowRect(GetDesktopWindow(), &rc);

sera :

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

Pour modifier la zone de travail d’un moniteur, appelez SystemParametersInfo avec SPI_SETWORKAREA et pvParam pointant vers une structureRECTqui se trouve sur le moniteur souhaité. Si pvParam est NULL, la zone de travail du moniteur principal est modifiée. L’utilisation de SPI_GETWORKAREA retourne toujours la zone de travail du moniteur principal. Pour obtenir la zone de travail d’un moniteur autre que le moniteur principal, appelez GetMonitorInfo.