Condividi tramite


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 compatibili con dpi. Se l'app non riconosce valori DPI, le coordinate dello schermo contenute nei messaggi del puntatore e nelle strutture correlate potrebbero risultare imprecise a causa della virtualizzazione DPI. La virtualizzazione DPI offre supporto automatico per il ridimensionamento alle applicazioni che non sono compatibili con dpi ed è attivo per impostazione predefinita (gli utenti possono disattivarlo). Per altre informazioni, vedere Writing High-DPI Win32 Applications.

#define WM_POINTERLEAVE                 0x024A

Parametri

wParam

Contiene l'identificatore del puntatore e informazioni aggiuntive. Utilizzare le macro seguenti per recuperare queste informazioni.

  • GET_POINTERID_WPARAM(wParam): identificatore del puntatore.
  • IS_POINTER_INRANGE_WPARAM(wParam): indica se il 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 il 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 punto del puntatore.

Nota

Poiché il puntatore può contattare il dispositivo su un'area non semplice, questa posizione può essere una semplificazione di un'area puntatore più complessa. Quando possibile, un'applicazione deve usare le informazioni complete sull'area del puntatore anziché la posizione del punto.

Utilizzare le macro seguenti per recuperare le coordinate fisiche dello schermo del punto.

Valore restituito

Se un'applicazione elabora questo messaggio, deve restituire zero.

Se l'applicazione non elabora questo messaggio, deve chiamare DefWindowProc.

Osservazioni

La notifica WM_POINTERLEAVE può essere usata da una finestra per cambiare la modalità o arrestare qualsiasi feedback 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 la notifica.

Azione Set di flag Notifiche inviate a
Un puntatore al passaggio del mouse supera i limiti della finestra. IS_POINTER_INRANGE_WPARAM Finestra all'esterno del cui limite è stato spostato il puntatore.
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à altre notifiche. Per questo motivo, è importante non fare ipotesi basate su notifiche WM_POINTERDOWN/WM_POINTERUP o WM_POINTERENTER/WM_POINTERLEAVE abbinate in modo uniforme.

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 supera i limiti della finestra o il contatto viene terminato.

WM_POINTERLEAVE viene inviato alla coda dei messaggi inseriti se l'input viene originato da un dispositivo mouse.

Fabbisogno

Requisito Valore
Client minimo supportato
Windows 8 [solo app desktop]
Server minimo supportato
Windows Server 2012 [solo app desktop]
Intestazione
Winuser.h (include Windows.h)

Vedere anche

messaggi

riferimento

GET_POINTERID_WPARAM

IS_POINTER_INRANGE_WPARAM

IS_POINTER_INCONTACT_WPARAM