zpráva WM_POINTERLEAVE
Odesláno do okna, když ukazatel opustí rozsah detekce nad oknem (najetí myší) nebo když se ukazatel přesune mimo hranice okna.
Okno obdrží tuto zprávu prostřednictvím funkce WindowProc.
! [Důležité]
Desktopové aplikace by měly být v rozlišení DPI. Pokud vaše aplikace nezná DPI, můžou se souřadnice obrazovky obsažené ve zprávách ukazatelů a souvisejících strukturách zobrazovat nepřesně kvůli virtualizaci DPI. Virtualizace DPI poskytuje podporu automatického škálování pro aplikace, které nepodporují DPI a jsou ve výchozím nastavení aktivní (uživatelé ho můžou vypnout). Další informace naleznete v tématu Psaní High-DPI aplikace Win32.
#define WM_POINTERLEAVE 0x024A
Parametry
-
wParam
-
Obsahuje identifikátor ukazatele a další informace. K načtení těchto informací použijte následující makra.
- GET_POINTERID_WPARAM(wParam): identifikátor ukazatele.
- IS_POINTER_INRANGE_WPARAM(wParam): označuje, zda byla tato zpráva generována ukazatelem, který nemá levou oblast detekce. Tento příznak není nastaven, když ukazatel opustí rozsah detekce okna.
- IS_POINTER_INCONTACT_WPARAM(wParam): Příznak označující, jestli byla tato zpráva generována ukazatelem, který je v kontaktu. Tento příznak není nastavený pro ukazatel v oblasti detekce (najetí myší).
-
lParam
-
Obsahuje umístění bodu ukazatele.
Poznámka
Vzhledem k tomu, že ukazatel může spojit se zařízením přes nesouvisenou oblast, může být toto umístění bodu zjednodušením složitější oblasti ukazatele. Kdykoli je to možné, aplikace by měla místo umístění bodu použít úplné informace o oblasti ukazatele.
Pomocí následujících maker načtěte souřadnice fyzické obrazovky bodu.
- GET_X_LPARAM(lParam): souřadnice x (vodorovný bod).
- GET_Y_LPARAM(lParam): souřadnice y (svislý bod).
Návratová hodnota
Pokud aplikace tuto zprávu zpracuje, měla by vrátit nulu.
Pokud aplikace tuto zprávu nezpracuje, měla by volat DefWindowProc.
Poznámky
Oznámení WM_POINTERLEAVE může okno použít ke změně režimu nebo zastavení zpětné vazby uživateli, když je ukazatel myši nad povrchem okna.
Toto oznámení se odešle pouze do okna, které přijímá vstup pro ukazatel. V následující tabulce jsou uvedeny některé situace, ve kterých se toto oznámení odesílá.
Akce | Sada příznaků | Oznámení odeslaná na |
---|---|---|
Ukazatel myši překračuje hranice okna. | IS_POINTER_INRANGE_WPARAM | Okno mimo hranici ukazatele se přesunulo. |
Ukazatel zmizí z rozsahu detekce. | Není k dispozici | Okno, pro které ukazatel opustí rozsah detekce. |
! [Důležité]
Když okno ztratí zachycení ukazatele a obdrží oznámení WM_POINTERCAPTURECHANGED, obvykle neobdrží žádná další oznámení. Z tohoto důvodu je důležité, abyste neprováděli žádné předpoklady na základě rovnoměrně spárovaných WM_POINTERDOWN/WM_POINTERUP nebo WM_POINTERENTER/WM_POINTERLEAVE oznámení.
Pokud je kontakt udržován se vstupním digitizátorem a ukazatel se přesune mimo okno, WM_POINTERLEAVE se negeneruje. WM_POINTERLEAVE se vygeneruje pouze v případě, že ukazatel myši překročí hranice okna nebo kontakt je ukončen.
WM_POINTERLEAVE se publikuje do publikované fronty zpráv, pokud vstup pochází ze zařízení myši.
Požadavky
Požadavek | Hodnota |
---|---|
Minimální podporovaný klient |
Windows 8 [pouze desktopové aplikace] |
Minimální podporovaný server |
Windows Server 2012 [jenom desktopové aplikace] |
Záhlaví |
|