WM_POINTERLEAVE üzenet
Egy ablakba küldve, ha egy mutató az észlelési tartományt az ablak felett hagyja (rámutatás), vagy amikor egy mutató az ablak határain kívülre kerül.
Az ablak a WindowProc függvényen keresztül kapja meg ezt az üzenetet.
! [Fontos]
Az asztali alkalmazásoknak tisztában kell lenniük a DPI-vel. Ha az alkalmazás nem tud a DPI-ről, a mutatóüzenetekben és a kapcsolódó struktúrákban található képernyőkoordináták pontatlannak tűnhetnek a DPI virtualizálása miatt. A DPI virtualizálás automatikus skálázási támogatást nyújt az olyan alkalmazások számára, amelyek nem ismerik a DPI-t, és alapértelmezés szerint aktívak (a felhasználók kikapcsolhatják). További információ: High-DPI Win32-alkalmazások írása.
#define WM_POINTERLEAVE 0x024A
Paraméterek
-
wParam
-
A mutatóazonosítót és a további információkat tartalmazza. Az alábbi makrók segítségével lekérheti ezeket az információkat.
- GET_POINTERID_WPARAM(wParam): a mutató azonosítója.
- IS_POINTER_INRANGE_WPARAM(wParam): azt jelzi, hogy az üzenetet olyan mutató hozta-e létre, amely nem hagyta el az észlelési tartományt. Ez a jelző nincs beállítva, ha a mutató elhagyja az ablak észlelési tartományát.
- IS_POINTER_INCONTACT_WPARAM(wParam): egy jelző, amely jelzi, hogy az üzenetet egy kapcsolattartó mutató hozta-e létre. Ez a jelző nincs beállítva a mutatóhoz az észlelési tartományban (rámutatás).
-
lParam
-
A mutató ponthelyét tartalmazza.
Jegyzet
Mivel az egérmutató nem triviális területen érintkezhet az eszközzel, ez a ponthely egy összetettebb mutatóterület egyszerűsítése lehet. Amikor csak lehetséges, az alkalmazásnak a pont helye helyett a teljes mutatóterület-információt kell használnia.
A pont fizikai képernyőkoordinátáinak lekéréséhez használja az alábbi makrókat.
- GET_X_LPARAM(lParam): az x (vízszintes pont) koordinátája.
- GET_Y_LPARAM(lParam): az y (függőleges pont) koordinátája.
Visszaadott érték
Ha egy alkalmazás feldolgozza ezt az üzenetet, nullát kell visszaadnia.
Ha az alkalmazás nem dolgozza fel ezt az üzenetet, hívja meg DefWindowProc.
Megjegyzések
Az WM_POINTERLEAVE értesítéssel az ablak módosíthatja a módot, vagy leállíthatja a felhasználónak küldött visszajelzéseket, miközben az egérmutató az ablakfelületen van.
Ezt az értesítést csak arra az ablakra küldi a rendszer, amely bemenetet kap a mutatóhoz. Az alábbi táblázat felsorol néhány olyan helyzetet, amelyben ezt az értesítést küldi.
Akció | Jelölőkészlet | Címzett értesítések |
---|---|---|
Az egérmutató átlépi az ablakhatárokat. | IS_POINTER_INRANGE_WPARAM | Azon az ablakon kívül, amelynek a szegélyén az egérmutató elmozdult. |
A mutató túllépi az észlelési tartományt. | N/A | Az ablak, amelynek a mutatója elhagyja az észlelési tartományt. |
! [Fontos]
Ha egy ablak elveszíti a mutató rögzítését, és megkapja a WM_POINTERCAPTURECHANGED értesítést, általában nem kap további értesítéseket. Ezért fontos, hogy ne tegyen feltételezéseket egyenletesen párosított WM_POINTERDOWN/WM_POINTERUP vagy WM_POINTERENTER/WM_POINTERLEAVE értesítések alapján.
Ha a bemeneti digitalizálóval tartja fenn a kapcsolatot, és a mutató az ablakon kívülre kerül, a WM_POINTERLEAVE nem jön létre. WM_POINTERLEAVE csak akkor jön létre, ha egy rámutató mutató átlépi az ablakhatárokat, vagy a kapcsolat megszakad.
WM_POINTERLEAVE akkor lesz közzétéve a közzétett üzenetsorba, ha a bemenet egéreszközről származik.
Követelmények
Követelmény | Érték |
---|---|
Minimálisan támogatott ügyfél |
Windows 8 [csak asztali alkalmazások] |
Minimálisan támogatott kiszolgáló |
Windows Server 2012 [csak asztali alkalmazások] |
Fejléc |
|