WM_PARENTNOTIFY メッセージ
子孫ウィンドウで重要なアクションが発生したときに、ウィンドウに送信されます。 このメッセージは、WM_POINTERDOWN イベントを含むように拡張されました。 子ウィンドウが作成されると、システムでは、そのウィンドウを作成する CreateWindow または CreateWindowEx 関数が戻される直前に WM_PARENTNOTIFY を送信します。 子ウィンドウが破棄されると、システムでは、ウィンドウを破棄する処理が行われる前にこのメッセージを送信します。
ウィンドウは、WindowProc 関数を介してこのメッセージを受け取ります。
![重要]
デスクトップ アプリは DPI に対応している必要があります。 アプリが DPI 対応でない場合、DPI 仮想化により、ポインター メッセージと関連する構造に含まれる画面座標が不正確に表示される可能性があります。 DPI 仮想化では、DPI 対応ではなく、既定でアクティブな (ユーザーが無効にすることができます) アプリケーションに対して自動スケーリングのサポートを提供します。 詳細については、「高 DPI Win32 アプリケーションの書き込み」を参照してください。
#define WM_PARENTNOTIFY 0x0210
パラメーター
-
wParam
-
wParam の下位ワードでは、親に通知されるイベントを指定します。 上位ワードの値は、下位ワードの値によって異なります。 このパラメーターには、次の値のいずれかを指定できます。
LOWORD(wParam) 意味 - WM_CREATE
- 0x0001
子ウィンドウが作成されています。
HIWORD(wParam) は子ウィンドウの識別子です。
lParam は、子ウィンドウへのハンドルです。- WM_DESTROY
- 0x0002
子ウィンドウが破棄されています。
HIWORD(wParam) は子ウィンドウの識別子です。
lParam は、子ウィンドウへのハンドルです。- WM_LBUTTONDOWN
- 0x0201
ユーザーが子ウィンドウの上にカーソルを置き、マウスの左ボタンをクリックしました。
HIWORD(wParam) は未定義です。
lParam では、カーソルの x 座標が下位ワードで、カーソルの y 座標が上位ワードです。- WM_MBUTTONDOWN
- 0x0207
ユーザーが子ウィンドウの上にカーソルを置き、マウスの中央のボタンをクリックしました。
HIWORD(wParam) は未定義です。
lParam では、カーソルの x 座標が下位ワードで、カーソルの y 座標が上位ワードです。- WM_RBUTTONDOWN
- 0x0204
ユーザーが子ウィンドウの上にカーソルを置き、マウスの右ボタンをクリックしました。
HIWORD(wParam) は未定義です。
lParam では、カーソルの x 座標が下位ワードで、カーソルの y 座標が上位ワードです。- WM_XBUTTONDOWN
- 0x020B
ユーザーが子ウィンドウの上にカーソルを置き、最初または 2 番目の X ボタンをクリックしました。
HIWORD(wParam) は、どのボタンが押されたかを示します。 このパラメーターには、XBUTTON1 または XBUTTON2 のいずれかの値を指定できます。
lParam では、カーソルの x 座標が下位ワードで、カーソルの y 座標が上位ワードです。- WM_POINTERDOWN
- 0x0246
ポインターが子ウィンドウに接触しました。
HIWORD(wParam) には、WM_POINTERDOWN イベントを生成したポインターの識別子が含まれています。 -
lParam
-
ポインターのポイント位置が含まれます。
Note
ポインターは非単純領域経由でデバイスと接触する可能性があるため、このポイント位置では、より複雑なポインター領域が簡略化される可能性があります。 可能な限り、アプリケーションではポイント位置ではなく、完全なポインター領域情報を使用する必要があります。
ポイントの物理的な画面座標を取得するには、次のマクロを使用します。
- GET_X_LPARAM(lParam): x (水平点) 座標。
- GET_Y_LPARAM(lParam): y (垂直点) 座標。
戻り値
アプリケーションでこのメッセージを処理すると、ゼロが返されます。
アプリケーションでこのメッセージが処理されない場合、DefWindowProc が呼び出されます。
解説
このメッセージは、最上位ウィンドウを含め、子ウィンドウのすべての先祖ウィンドウにも送信されます。
WS_EX_NOPARENTNOTIFY 拡張ウィンドウ スタイルを持つもの以外のすべての子ウィンドウでは、親ウィンドウにこのメッセージを送信します。 既定では、ダイアログ ボックス内の子ウィンドウには WS_EX_NOPARENTNOTIFY スタイルが使用されます。ただし、このスタイルを使用せずに子ウィンドウを作成するために CreateWindowEx 関数が呼び出される場合を除きます。
この通知が送られると、子ウィンドウの先祖ウィンドウがポインター情報を調べて、必要に応じてポインター キャプチャ関数を使用してポインターをキャプチャする機会を得られます。
要件
要件 | Value |
---|---|
サポートされている最小のクライアント |
Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2012 [デスクトップ アプリのみ] |
Header |
|