WM_GETDPISCALEDSIZE メッセージ

このメッセージは、ウィンドウが既定値以外のサイズに設定されることをオペレーティング システムに通知するものです。

このメッセージは、WM_DPICHANGED メッセージが送信される前に Per Monitor v2 の DPI_AWARENESS_CONTEXT を持つトップレベル ウィンドウに送信され、ウィンドウが保留中の DPI 変更に望ましいサイズを計算できるようにします。 既定の動作は線形 DPI スケールであるため、これは、ウィンドウを非線形にスケーリングする必要があるシナリオでのみ役立ちます。 アプリケーションがこのメッセージに応答した場合、結果となるサイズは、WM_DPICHANGED に送信された候補となる四角形になります。

このメッセージを使用して、WM_DPICHANGED で提供される四角形のサイズを変更します。

#define WM_GETDPISCALEDSIZE       0x02E4

パラメーター

wParam

WPARAM には DPI 値が含まれています。 アプリケーションで設定されるスケーリング後のウィンドウ サイズは、ウィンドウがこの DPI に切り替えられたかのように計算される必要があります。

lParam

LPARAM は、SIZE 構造体への in/out ポインターです。 LPARAM の _In_ 値は、ユーザーが開始した移動または SetWindowPos の呼び出し後に保留中になっているウィンドウのサイズです。 ウィンドウのサイズが変更されている場合、このサイズは、このメッセージを受信した時点でのウィンドウの現在のサイズと必ずしも同じにはなりません。

LPARAM の _Out_ 値は、WPARAM で指定された DPI 値に対応する適切にスケーリングされたウィンドウ サイズを指定するために、アプリケーションによって書き込まれる必要があります。

戻り値

この関数は BOOL を返します。 TRUE を返す場合、新しいサイズが計算されたことを示します。 FALSE を返す場合、メッセージは処理されず、既定の線形 DPI スケールがウィンドウに適用されることを示します。

解説

このメッセージは、Per Monitor v2 の DPI 認識コンテキストを持つトップレベル ウィンドウにのみ送信されます。

このイベントは、適切な非線形スケーリングを容易にするために必要であり、カーソルがモニター間を行ったり来たりするときにウィンドウとの位置関係が一定するようになります。

DefWindowProc では、このメッセージに特定の既定の処理はありません。 明示的に処理されないすべてのメッセージに関して、DefWindowProc はこのメッセージに対するゼロを返します。 前述のように、この戻り値は、既定の線形動作を使用するようにシステムに指示します。

要件

要件 Value
サポートされている最小のクライアント
Windows 10 バージョン 1703 [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2016 [デスクトップ アプリのみ]
ヘッダー
Winuser.h