WM_POINTERENTER メッセージ
新しいポインターがウィンドウの上に検出範囲に入ったとき (ホバー)、または既存のポインターがウィンドウの境界内を移動したときに、ウィンドウに送信されます。
ウィンドウは、WindowProc 関数を介してこのメッセージを受信します。
![重要]
デスクトップ アプリは DPI に対応している必要があります。 アプリが DPI 対応でない場合、DPI 仮想化により、ポインター メッセージおよび関連する構造に含まれる画面座標が不正確に表示されることがあります。 DPI 仮想化は、DPI 対応ではなく、既定でアクティブなアプリケーションに対して自動スケーリングのサポートを提供します (ユーザーは無効にすることができます)。 詳細については、「Win32 アプリケーションHigh-DPI 書き込み」を参照してください。
#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
-
ポインターのポイント位置を格納します。
手記
ポインターは単純でない領域を介してデバイスと接触する可能性があるため、このポイント位置は、より複雑なポインター領域の簡略化になる可能性があります。 可能な限り、アプリケーションではポイントの位置ではなく、完全なポインター領域情報を使用する必要があります。
ポイントの物理的な画面座標を取得するには、次のマクロを使用します。
- GET_X_LPARAM(lParam): x (水平点) 座標。
- GET_Y_LPARAM(lParam): y (垂直点) 座標。
戻り値
アプリケーションがこのメッセージを処理すると、0 が返されます。
アプリケーションがこのメッセージを処理しない場合は、DefWindowProc呼び出す必要があります。
備考
WM_POINTERENTER 通知は、ポインターがサーフェス上にあるときにユーザーにフィードバックを提供したり、ポインターがサーフェス上に存在する場合に応答したりするために、ウィンドウで使用できます。
この通知は、ポインターの入力を受信しているウィンドウにのみ送信されます。 次の表に、この通知が送信される状況の一部を示します。
アクション | Flags Set | 送信先の通知 |
---|---|---|
新しいポインターが検出範囲 (ホバー) に入ります。 |
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 [デスクトップ アプリのみ] |
ヘッダ |
|