여러 모니터 시스템 메트릭

GetSystemMetrics 함수는 전체 데스크톱을 참조하는 SM_CXMAXTRACK 및 SM_CYMAXTRACK 제외하고 주 모니터에 대한 값을 반환합니다. SM_CXCURSOR, SM_CYCURSOR, SM_CXICON, SMCYICON 등 모든 디바이스 드라이버에 대해 동일한 메트릭이 있습니다. LOGPIXELSX, LOGPIXELSY, DESTOPHORZRES, DESKTOPVERTRES 등 모든 모니터의 표시 기능은 동일합니다.

GetSystemMetrics 에는 다중 모니터 시스템만 참조하는 상수도 있습니다. SM_XVIRTUALSCREEN 및 SM_YVIRTUALSCREEN 가상 화면의 왼쪽 위 모서리를 식별하며, SM_CXVIRTUALSCREEN 및 SM_CYVIRTUALSCREEN 가상 화면의 세로 및 가로 측정이며, SM_CMONITORS 바탕 화면에 연결된 모니터의 수이며, SM_SAMEDISPLAYFORMAT 바탕 화면의 모든 모니터의 색 형식이 같은지 여부를 나타냅니다.

단일 디스플레이 모니터 또는 데스크톱의 모든 디스플레이 모니터에 대한 정보를 얻으려면 EnumDisplayMonitors를 사용합니다. GetWindowRect 또는 GetClientRect에서 반환된 바탕 화면 창의 사각형은 항상 기존 애플리케이션과의 호환성을 위해 주 모니터의 사각형과 같습니다. 따라서 의 결과

GetWindowRect(GetDesktopWindow(), &rc);

은 다음과 같습니다.

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

모니터의 작업 영역을 변경하려면 원하는 모니터에 있는 RECT 구조를 가리키는 SPI_SETWORKAREA 및 pvParam을 사용하여 SystemParametersInfo를 호출합니다. pvParamNULL이면 기본 모니터의 작업 영역이 수정됩니다. SPI_GETWORKAREA 사용하면 항상 기본 모니터의 작업 영역이 반환됩니다. 기본 모니터가 아닌 모니터의 작업 영역을 얻으려면 GetMonitorInfo를 호출합니다.