WM_POINTERLEAVE bericht
Verzonden naar een venster wanneer een aanwijzer het detectiebereik over het venster verlaat (aanwijzer) of wanneer een aanwijzer buiten de grenzen van het venster wordt verplaatst.
Een venster ontvangt dit bericht via de functie WindowProc.
! [Belangrijk]
Desktop-apps moeten DPI-bewust zijn. Als uw app geen DPI-kennis heeft, kunnen schermcoördinaten in aanwijzerberichten en gerelateerde structuren onnauwkeurig lijken vanwege DPI-virtualisatie. DPI-virtualisatie biedt ondersteuning voor automatisch schalen voor toepassingen die niet dpi-bewust zijn en die standaard actief zijn (gebruikers kunnen deze uitschakelen). Zie Writing High-DPI Win32 Applicationsvoor meer informatie.
#define WM_POINTERLEAVE 0x024A
Parameters
-
wParam-
-
Bevat de aanwijzer-id en aanvullende informatie. Gebruik de volgende macro's om deze informatie op te halen.
- GET_POINTERID_WPARAM(wParam): de aanwijzer-id.
- IS_POINTER_INRANGE_WPARAM(wParam): geeft aan of dit bericht is gegenereerd door een aanwijzer die geen detectiebereik heeft verlaten. Deze vlag is niet ingesteld wanneer de aanwijzer het detectiebereik van het venster verlaat.
- IS_POINTER_INCONTACT_WPARAM(wParam): een vlag die aangeeft of dit bericht is gegenereerd door een aanwijzer die in contact is. Deze vlag is niet ingesteld voor een aanwijzer in het detectiebereik (hover).
-
lParam-
-
Bevat de puntlocatie van de aanwijzer.
Notitie
Omdat de aanwijzer contact kan maken met het apparaat via een niet-triviaal gebied, kan deze puntlocatie een vereenvoudiging zijn van een complexer puntgebied. Indien mogelijk moet een toepassing de volledige informatie over het aanwijzergebied gebruiken in plaats van de puntlocatie.
Gebruik de volgende macro's om de fysieke schermcoördinaten van het punt op te halen.
- GET_X_LPARAM(lParam): de coördinaat x (horizontaal punt).
- GET_Y_LPARAM(lParam): de coördinaat y (verticaal punt).
Retourwaarde
Als een toepassing dit bericht verwerkt, moet het nul retourneren.
Als dit bericht niet door de toepassing wordt verwerkt, moet deze DefWindowProc-aanroepen.
Opmerkingen
De WM_POINTERLEAVE melding kan door een venster worden gebruikt om de modus te wijzigen of feedback aan de gebruiker te stoppen terwijl de aanwijzer zich boven het vensteroppervlak bevindt.
Deze melding wordt alleen verzonden naar het venster dat invoer voor de aanwijzer ontvangt. De volgende tabel bevat enkele situaties waarin deze melding wordt verzonden.
Actie | Markeringen ingesteld | Meldingen verzonden naar |
---|---|---|
Met een aanwijsfunctie worden venstergrenzen overschreden. | IS_POINTER_INRANGE_WPARAM | Venster buiten de grens waarvan de aanwijzer is verplaatst. |
Een aanwijzer valt buiten het detectiebereik. | N.V.T | Venster waarvoor de aanwijzer het detectiebereik verlaat. |
! [Belangrijk]
Wanneer een venster de opname van een aanwijzer verliest en de melding WM_POINTERCAPTURECHANGED ontvangt, ontvangt het meestal geen verdere meldingen. Daarom is het belangrijk dat u geen veronderstellingen maakt op basis van gelijkmatig gekoppelde WM_POINTERDOWN/WM_POINTERUP of WM_POINTERENTER/WM_POINTERLEAVE meldingen.
Als het contact wordt onderhouden met de invoerdigiter en de aanwijzer buiten het venster wordt verplaatst, wordt WM_POINTERLEAVE niet gegenereerd. WM_POINTERLEAVE wordt alleen gegenereerd wanneer een aanwijzer de venstergrenzen overschrijdt of de contactpersoon wordt beëindigd.
WM_POINTERLEAVE wordt geplaatst in de geplaatste berichtenwachtrij als de invoer afkomstig is van een muisapparaat.
Eisen
Eis | Waarde |
---|---|
Minimaal ondersteunde client |
Windows 8 [alleen desktop-apps] |
Minimaal ondersteunde server |
Windows Server 2012 [alleen desktop-apps] |
Rubriek |
|