WM_POINTERLEAVE messaggio
Inviato a una finestra quando un puntatore lascia l'intervallo di rilevamento sulla finestra (passaggio del mouse) o quando un puntatore si sposta all'esterno dei limiti della finestra.
Una finestra riceve questo messaggio tramite la relativa funzione WindowProc .
! [Importante]
Le app desktop devono essere consapevoli di DPI. Se l'app non è a conoscenza di DPI, le coordinate dello schermo contenute nei messaggi puntatore e nelle strutture correlate potrebbero risultare imprecise a causa della virtualizzazione DPI. La virtualizzazione DPI offre il supporto automatico per la scalabilità alle applicazioni che non sono consapevoli di DPI ed è attiva per impostazione predefinita (gli utenti possono disattivarlo). Per altre informazioni, vedere Scrittura di applicazioni Win32 con dpi elevati.
#define WM_POINTERLEAVE 0x024A
Parametri
-
wParam
-
Contiene l'identificatore del puntatore e altre informazioni. Usare le macro seguenti per recuperare queste informazioni.
- GET_POINTERID_WPARAM(wParam): identificatore del puntatore.
- IS_POINTER_INRANGE_WPARAM(wParam): indica se questo messaggio è stato generato da un puntatore che non ha lasciato l'intervallo di rilevamento. Questo flag non viene impostato quando il puntatore lascia l'intervallo di rilevamento della finestra.
- IS_POINTER_INCONTACT_WPARAM(wParam): flag che indica se questo messaggio è stato generato da un puntatore in contatto. Questo flag non è impostato per un puntatore nell'intervallo di rilevamento (passaggio del mouse).
-
lParam
-
Contiene la posizione del puntatore.
Nota
Poiché il puntatore può contattare il dispositivo su un'area non semplice, questa posizione del punto può essere una semplificazione di un'area puntatore più complessa. Se possibile, un'applicazione deve usare le informazioni complete sull'area del puntatore anziché sulla posizione del punto.
Usare le macro seguenti per recuperare le coordinate dello schermo fisico del punto.
- GET_X_LPARAM(lParam): coordinata x (punto orizzontale).
- GET_Y_LPARAM(lParam): coordinata y (punto verticale).
Valore restituito
Se un'applicazione elabora questo messaggio, deve restituire zero.
Se l'applicazione non elabora questo messaggio, deve chiamare DefWindowProc.
Commenti
La notifica WM_POINTERLEAVE può essere usata da una finestra per modificare la modalità o arrestare eventuali commenti e suggerimenti all'utente mentre il puntatore si trova sulla superficie della finestra.
Questa notifica viene inviata solo alla finestra che riceve l'input per il puntatore. Nella tabella seguente sono elencate alcune delle situazioni in cui viene inviata questa notifica.
Azione | Set di flag | Notifiche inviate a |
---|---|---|
Un puntatore al passaggio del mouse attraversa i limiti della finestra. | IS_POINTER_INRANGE_WPARAM | Finestra all'esterno del cui limite il puntatore è stato spostato. |
Un puntatore esce dall'intervallo di rilevamento. | N/D | Finestra per cui il puntatore lascia l'intervallo di rilevamento. |
! [Importante]
Quando una finestra perde l'acquisizione di un puntatore e riceve la notifica di WM_POINTERCAPTURECHANGED , in genere non riceverà ulteriori notifiche. Per questo motivo, è importante che non si facciano ipotesi basatesu WM_POINTERDOWNWM_POINTERUP/ o /WM_POINTERENTER notifiche WM_POINTERLEAVE abbinate.
Se il contatto viene mantenuto con il digitalizzatore di input e il puntatore si sposta all'esterno della finestra, WM_POINTERLEAVE non viene generato. WM_POINTERLEAVE viene generato solo quando un puntatore al passaggio del mouse attraversa i limiti della finestra o il contatto viene terminato.
WM_POINTERLEAVE viene pubblicato nella coda dei messaggi inseriti se l'input è originato da un dispositivo del mouse.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 8 [solo app desktop] |
Server minimo supportato |
Windows Server 2012 [solo app desktop] |
Intestazione |
|