WM_POINTERENTER Nachricht
Wird an ein Fenster gesendet, wenn ein neuer Zeiger den Erkennungsbereich über das Fenster eingibt (Daraufzeigen) oder wenn ein vorhandener Zeiger innerhalb der Begrenzungen des Fensters bewegt wird.
Ein Fenster empfängt diese Nachricht über die WindowProc--Funktion.
! [Wichtig]
Desktop-Apps sollten DPI-Werte beachten. Wenn Ihre App keine DPI-Werte erkennt, können Bildschirmkoordinaten, die in Zeigermeldungen und verwandten Strukturen enthalten sind, aufgrund der DPI-Virtualisierung ungenau erscheinen. Die DPI-Virtualisierung bietet automatische Skalierungsunterstützung für Anwendungen, die nicht DPI-fähig sind und standardmäßig aktiv sind (Benutzer können sie deaktivieren). Weitere Informationen finden Sie unter Writing High-DPI Win32 Applications.
#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 in den Erkennungsbereich wechselt (Daraufzeigen).
- IS_POINTER_INRANGE_WPARAM(wParam): Gibt an, ob diese Nachricht von einem Zeiger generiert wurde, der nicht den Erkennungsbereich verlassen hat. Dieses Kennzeichen ist 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 sich in Kontakt befindet. Dieses Kennzeichen ist für einen Zeiger im Erkennungsbereich (Daraufzeigen) nicht festgelegt.
-
lParam-
-
Enthält die Punktposition des Zeigers.
Anmerkung
Da der Zeiger den Kontakt mit dem Gerät über einen nicht trivialen Bereich herstellen kann, kann dieser Punktstandort eine Vereinfachung eines komplexeren Zeigerbereichs darstellen. Wann immer 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 Meldung verarbeitet, sollte sie Null zurückgeben.
Wenn die Anwendung diese Meldung nicht verarbeitet, sollte sie DefWindowProcaufrufen.
Bemerkungen
Die WM_POINTERENTER-Benachrichtigung kann von einem Fenster verwendet werden, um dem Benutzer Feedback zu geben, während sich der Zeiger über der Oberfläche befindet oder anderweitig auf das Vorhandensein eines Zeigers über der Oberfläche reagiert.
Diese Benachrichtigung wird nur an das Fenster gesendet, das Eingaben für den Zeiger empfängt. In der folgenden Tabelle sind einige der Situationen aufgeführt, in denen diese Benachrichtigung gesendet wird.
Aktion | Kennzeichnungen festgelegt | Gesendete Benachrichtigungen an |
---|---|---|
Ein neuer Zeiger wechselt in den Erkennungsbereich (Daraufzeigen). |
IS_POINTER_NEW_WPARAM IS_POINTER_INRANGE_WPARAM |
Fenster, über das der Zeiger in den Erkennungsbereich wechselt. |
Ein Mauszeiger überschreitet die Fensterbegrenzungen. |
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, erhält 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 aus der Maus stammen, wird WM_POINTERENTER aufgrund der Maus- und Zeigernachrichtenintegration nicht gesendet.
Anforderungen
Anforderung | Wert |
---|---|
Mindestens unterstützter Client |
Windows 8 [nur Desktop-Apps] |
Mindestens unterstützter Server |
Windows Server 2012 [nur Desktop-Apps] |
Kopfball |
|