WM_POINTERENTER Meldung
Wird an ein Fenster gesendet, wenn ein neuer Zeiger in den Erkennungsbereich über dem Fenster eintritt (Zeigen) oder wenn sich ein vorhandener Zeiger innerhalb der Grenzen des Fensters bewegt.
Ein Fenster empfängt diese Meldung über seine WindowProc-Funktion.
[! Wichtig]
Desktop-Apps sollten DPI-fähige Apps sein. Wenn Ihre App nicht DPI-bewusst ist, können Bildschirmkoordinaten, die in Zeigermeldungen und zugehörigen Strukturen enthalten sind, aufgrund der DPI-Virtualisierung ungenau erscheinen. Die DPI-Virtualisierung bietet Unterstützung für die automatische Skalierung für Anwendungen, die nicht DPI-bewusst sind und standardmäßig aktiv sind (Benutzer können sie deaktivieren). Weitere Informationen finden Sie unter Schreiben von Win32-Anwendungen mit hohem DPI-Anteil.
#define WM_POINTERENTER 0x0249
Parameter
-
wParam
-
Enthält den Zeigerbezeichner und zusätzliche Informationen. Verwenden Sie die folgenden Makros, um bestimmte Informationen im wParam-Parameter abzurufen.
- GET_POINTERID_WPARAM(wParam): der Zeigerbezeichner.
- IS_POINTER_NEW_WPARAM(wParam): Gibt an, ob diese Nachricht die erste Nachricht ist, die von einem neuen Zeiger generiert wird, der den Erkennungsbereich eingibt (Zeigen).
- IS_POINTER_INRANGE_WPARAM(wParam): Gibt an, ob diese Nachricht von einem Zeiger generiert wurde, der den Erkennungsbereich nicht verlassen hat. Dieses Flag wird immer für WM_POINTERENTER Nachrichten festgelegt.
- IS_POINTER_INCONTACT_WPARAM(wParam): Ein Flag, das angibt, ob diese Nachricht von einem Zeiger generiert wurde, der kontaktiert. Dieses Flag ist nicht für einen Zeiger im Erkennungsbereich festgelegt (zeigen Sie darauf).
-
lParam
-
Enthält die Punktposition des Zeigers.
Hinweis
Da der Zeiger den Kontakt mit dem Gerät über einen nicht trivialen Bereich herstellen kann, kann diese Punktposition eine Vereinfachung eines komplexeren Zeigerbereichs sein. Wenn möglich, sollte eine Anwendung anstelle der Punktposition die vollständigen Zeigerbereichsinformationen verwenden.
Verwenden Sie die folgenden Makros, um die physischen Bildschirmkoordinaten des Punkts abzurufen.
- GET_X_LPARAM(lParam): die x-Koordinate (horizontaler Punkt).
- GET_Y_LPARAM(lParam): die y-Koordinate (vertikaler Punkt).
Rückgabewert
Wenn eine Anwendung diese Nachricht verarbeitet, sollte sie 0 (null) zurückgeben.
Wenn die Anwendung diese Nachricht nicht verarbeitet, sollte sie DefWindowProcaufrufen.
Hinweise
Die WM_POINTERENTER Benachrichtigung kann von einem Fenster verwendet werden, um dem Benutzer Feedback zu geben, während sich der Zeiger über seiner Oberfläche befindet, oder um auf andere Weise auf das Vorhandensein eines Zeigers über seiner Oberfläche zu reagieren.
Diese Benachrichtigung wird nur an das Fenster gesendet, das Eingaben für den Zeiger empfängt. In der folgenden Tabelle sind einige Situationen aufgeführt, in denen diese Benachrichtigung gesendet wird.
| Aktion | Festlegen von Flags | An gesendete Benachrichtigungen |
|---|---|---|
| Ein neuer Zeiger wechselt in den Erkennungsbereich (Zeigen). | IS_POINTER_NEW_WPARAM IS_POINTER_INRANGE_WPARAM |
Fenster, über das der Zeiger in den Erkennungsbereich eintritt. |
| Ein zeigender Zeiger kreuzt innerhalb der Fenstergrenzen. | IS_POINTER_INRANGE_WPARAM |
Fenster, in dem der Zeiger gekreuzt wurde. |
[! Wichtig]
Wenn ein Fenster die Erfassung eines Zeigers verliert und die WM_POINTERCAPTURECHANGED Benachrichtigung empfängt, empfängt es in der Regel keine weiteren Benachrichtigungen. Aus diesem Grund ist es wichtig, dass Sie keine Annahmen basierend auf gleichmäßig gekoppelten WM_POINTERDOWN / WM_POINTERUP oder WM_POINTERENTER / WM_POINTERLEAVE-Benachrichtigungen treffen.
Wenn Eingaben von der Maus stammen, wird aufgrund der Integration der Maus- und Zeigernachricht WM_POINTERENTER nicht gesendet.
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
[Windows 8 Nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
[Windows Server 2012 Nur Desktop-Apps] |
| Header |
|