複数のモニター システム メトリック

GetSystemMetrics 関数は、デスクトップ全体を参照するSM_CXMAXTRACKとSM_CYMAXTRACKを除き、プライマリ モニターの値を返します。 次のメトリックは、すべてのデバイス ドライバーで同じです:SM_CXCURSOR、SM_CYCURSOR、SM_CXICON、SMCYICON。 すべてのモニターで、LOGPIXELSX、LOGPIXELSY、DESTOPHORZRES、DESKTOPVERTRES の表示機能は同じです。

GetSystemMetrics には、 複数のモニター システムのみを参照する定数もあります。 SM_XVIRTUALSCREENとSM_YVIRTUALSCREEN、仮想画面の左上隅を識別SM_YVIRTUALSCREEN、SM_CXVIRTUALSCREENとSM_CYVIRTUALSCREENは仮想画面の垂直方向と水平方向の測定値であり、SM_CMONITORSはデスクトップに接続されているモニターの数であり、デスクトップ上のすべてのモニターの色形式が同じかどうかを示SM_SAMEDISPLAYFORMAT。

1 台のディスプレイ モニターまたはデスクトップ内のすべてのディスプレイ モニターに関する情報を取得するには、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 を呼び出します。