Freigeben über


WM_POINTERLEAVE-Meldung

Wird an ein Fenster gesendet, wenn ein Zeiger den Erkennungsbereich über dem Fenster verlässt (mit dem Mauszeiger zeigen) oder wenn sich ein Zeiger außerhalb der Fenstergrenzen bewegt.

Ein Fenster empfängt diese Meldung über seine WindowProc-Funktion .

![Wichtig]
Desktop-Apps sollten DPI-fähig sein. Wenn Ihre App nicht DPI-fähig ist, erscheinen bildschirmkoordinaten, die in Zeigermeldungen und zugehörigen Strukturen enthalten sind, aufgrund der DPI-Virtualisierung möglicherweise ungenau. 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 Schreiben von Win32-Anwendungen mit hohem DPI-Wert.

#define WM_POINTERLEAVE                 0x024A

Parameter

wParam

Enthält den Zeigerbezeichner und zusätzliche Informationen. Verwenden Sie die folgenden Makros, um diese Informationen abzurufen.

  • GET_POINTERID_WPARAM(wParam): der Zeigerbezeichner.
  • IS_POINTER_INRANGE_WPARAM(wParam): Gibt an, ob diese Nachricht von einem Zeiger generiert wurde, der den Erkennungsbereich nicht verlassen hat. Dieses Flag wird nicht festgelegt, wenn der Zeiger den Erkennungsbereich des Fensters verlässt.
  • IS_POINTER_INCONTACT_WPARAM(wParam): Ein Flag, das angibt, ob diese Nachricht von einem Zeiger generiert wurde, der sich in Kontakt befindet. Dieses Flag ist für einen Zeiger im Erkennungsbereich nicht festgelegt (zeigen Sie darauf).

lParam

Enthält die Punktposition des Zeigers.

Hinweis

Da der Zeiger über einen nicht trivialen Bereich Kontakt mit dem Gerät herstellen kann, kann dieser Punktstandort eine Vereinfachung eines komplexeren Zeigerbereichs darstellen. Wenn möglich, sollte eine Anwendung die vollständigen Zeigerbereichsinformationen anstelle der Punktposition verwenden.

Verwenden Sie die folgenden Makros, um die physischen Bildschirmkoordinaten des Punkts abzurufen.

Rückgabewert

Wenn eine Anwendung diese Nachricht verarbeitet, sollte sie null zurückgeben.

Wenn die Anwendung diese Nachricht nicht verarbeitet, sollte sie DefWindowProc aufrufen.

Bemerkungen

Die WM_POINTERLEAVE Benachrichtigung kann von einem Fenster verwendet werden, um den Modus zu ändern oder feedback an den Benutzer zu beenden, während sich der Zeiger über der Fensteroberfläche befindet.

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 Festlegen von Flags An gesendete Benachrichtigungen
Ein zeigender Zeiger überschreitet Fenstergrenzen. IS_POINTER_INRANGE_WPARAM Fenster, außerhalb dessen Grenze der Zeiger verschoben wurde.
Ein Zeiger geht außerhalb des Erkennungsbereichs. Fenster, für das der Zeiger den Erkennungsbereich verlässt.

![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 treffen, die auf gleichmäßig gekoppelten WM_POINTERDOWN/WM_POINTERUP oder WM_POINTERENTER/WM_POINTERLEAVE Benachrichtigungen basieren.

Wenn der Kontakt mit dem Eingabedigisierer beibehalten wird und sich der Zeiger außerhalb des Fensters bewegt, wird WM_POINTERLEAVE nicht generiert. WM_POINTERLEAVE wird nur generiert, wenn ein zeigender Zeiger Fenstergrenzen überschreitet oder der Kontakt beendet wird.

WM_POINTERLEAVE wird in die bereitgestellte Nachrichtenwarteschlange gesendet, wenn die Eingabe von einem Mausgerät stammt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2012 [nur Desktop-Apps]
Header
Winuser.h (windows.h einschließen)

Siehe auch

Meldungen

Referenz

GET_POINTERID_WPARAM

IS_POINTER_INRANGE_WPARAM

IS_POINTER_INCONTACT_WPARAM