WM_POINTERENTER メッセージ
新しいポインターがウィンドウの上に検出範囲に入ったとき (ホバー)、または既存のポインターがウィンドウの境界内を移動したときに、ウィンドウに送信されます。
ウィンドウは、WindowProc 関数を介してこのメッセージを受け取ります。
![重要]
デスクトップ アプリは DPI 対応である必要があります。 アプリが DPI に対応していない場合、DPI 仮想化により、ポインター メッセージと関連する構造体に含まれる画面座標が不正確に見える可能性があります。 DPI 仮想化では、DPI 対応ではなく、既定でアクティブになっているアプリケーションに対して自動スケーリングのサポートが提供されます (ユーザーはそれをオフにすることができます)。 詳細については、「 高 DPI Win32 アプリケーションの作成」を参照してください。
#define WM_POINTERENTER 0x0249
パラメーター
-
wParam
-
ポインター識別子と追加情報を格納します。 wParam パラメーターで特定の情報を取得するには、次のマクロを使用します。
- GET_POINTERID_WPARAM(wParam): ポインター識別子。
- IS_POINTER_NEW_WPARAM(wParam): このメッセージが、検出範囲に入る新しいポインター (ホバー) によって生成された最初のメッセージであるかどうかを示します。
- IS_POINTER_INRANGE_WPARAM(wParam): このメッセージが、検出範囲を残していないポインターによって生成されたかどうかを示します。 このフラグは、常に WM_POINTERENTER メッセージに設定されます。
- IS_POINTER_INCONTACT_WPARAM(wParam): このメッセージが接触しているポインターによって生成されたかどうかを示すフラグ。 このフラグは、検出範囲内のポインター (ホバー) には設定されません。
-
lParam
-
ポインターのポイント位置を格納します。
Note
ポインターは単純でない領域を介してデバイスと接触する可能性があるため、このポイント位置は、より複雑なポインター領域の簡略化になる可能性があります。 可能な限り、アプリケーションではポイントの場所ではなく、完全なポインター領域情報を使用する必要があります。
ポイントの物理的な画面座標を取得するには、次のマクロを使用します。
- GET_X_LPARAM(lParam): x (水平点) 座標。
- GET_Y_LPARAM(lParam): y (垂直点) 座標。
戻り値
アプリケーションでこのメッセージを処理する場合は、0 を返す必要があります。
アプリケーションがこのメッセージを処理しない場合は、 DefWindowProc を呼び出す必要があります。
注釈
WM_POINTERENTER通知をウィンドウで使用すると、ポインターが表面上にある間にユーザーにフィードバックを提供したり、ポインターの表面上にポインターが存在する場合に応答したりできます。
この通知は、ポインターの入力を受信しているウィンドウにのみ送信されます。 次の表に、この通知が送信される状況の一部を示します。
アクション | フラグ セット | 送信先の通知 |
---|---|---|
新しいポインターが検出範囲 (ホバー) に入ります。 |
IS_POINTER_NEW_WPARAM IS_POINTER_INRANGE_WPARAM |
ポインターが検出範囲に入るウィンドウ。 |
マウス ポインターがウィンドウの境界内を横切ります。 |
IS_POINTER_INRANGE_WPARAM |
ポインターが交差しているウィンドウ。 |
![重要]
ウィンドウがポインターのキャプチャを失い、 WM_POINTERCAPTURECHANGED 通知を受信すると、通常はそれ以上の通知は受信されません。 このため、均等にペアになっているWM_POINTERDOWNのWM_POINTERUPやWM_POINTERENTER WM_POINTERLEAVE//通知に基づいて、何も想定しないことが重要です。
入力がマウスから送信された場合、マウスとポインターのメッセージ統合の結果として、 WM_POINTERENTER は送信されません。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2012 [デスクトップ アプリのみ] |
Header |
|