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
ユーザーが子ウィンドウの上にカーソルを置き、1 つ目または 2 つ目の [X] ボタンをクリックしました。
HIWORD(wParam) は、どのボタンが押されたかを示します。 このパラメーターには、XBUTTON1 または XBUTTON2 のいずれかの値を指定できます。
lParam は、カーソルの x 座標が下位ワードで、カーソルの y 座標が上位ワードです。- WM_POINTERDOWN
- 0x0246
ポインターが子ウィンドウと接触しました。
HIWORD(wParam) には、 WM_POINTERDOWN イベントを生成したポインターの識別子が含まれています。 -
lParam
-
ポインターのポイント位置を格納します。
注意
ポインターは単純でない領域を介してデバイスと接触する可能性があるため、このポイント位置は、より複雑なポインター領域の簡略化になる可能性があります。 可能な限り、アプリケーションではポイントの場所ではなく、完全なポインター領域情報を使用する必要があります。
ポイントの物理的な画面座標を取得するには、次のマクロを使用します。
- GET_X_LPARAM(lParam): x (水平点) 座標。
- GET_Y_LPARAM(lParam): y (垂直点) 座標。
戻り値
アプリケーションがこのメッセージを処理すると、0 が返されます。
アプリケーションがこのメッセージを処理しない場合は、 DefWindowProc を呼び出します。
解説
このメッセージは、最上位ウィンドウを含め、子ウィンドウのすべての先祖ウィンドウにも送信されます。
WS_EX_NOPARENTNOTIFY拡張ウィンドウ スタイルを持つ子ウィンドウを除くすべての子ウィンドウは、親ウィンドウにこのメッセージを送信します。 既定では、このスタイルのない子ウィンドウを作成するために CreateWindowEx 関数が呼び出されない限り、ダイアログ ボックスの子ウィンドウには WS_EX_NOPARENTNOTIFY スタイルがあります。
この通知は、子ウィンドウの先祖ウィンドウにポインター情報を調べ、必要に応じてポインター キャプチャ関数を使用してポインターをキャプチャする機会を提供します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2012 [デスクトップ アプリのみ] |
Header |
|