Mouse Capture

Il sistema invia in genere un messaggio alla finestra che contiene il cursore area sensibile al momento che si verifica un evento del mouse. Un'applicazione puņ modificare tale comportamento utilizzando la funzione SetCapture per instradare i messaggi di topo per una finestra specifica. La finestra riceve tutti i messaggi del mouse fino a quando l'applicazione chiama la funzione ReleaseCapture o specifica un'altra finestra di cattura, o fino a quando l'utente fa clic su una finestra creata da un altro thread.

Ogni volta che il mouse catturare i cambiamenti, il sistema invia un messaggio a WM_CAPTURECHANGED alla finestra che sta perdendo il mouse capture. Il parametro lParam del messaggio specifica l'handle della finestra che sta guadagnando la cattura del mouse.

Solo la finestra in primo piano puņ catturare l'input del mouse. Quando una finestra di sfondo tenta di catturare l'input del mouse, riceve i messaggi solo per gli eventi del mouse che si verificano quando il punto caldo del cursore si trova la parte visibile della finestra.

Catturare l'input del mouse č utile se una finestra deve ricevere tutti gli input del mouse, anche quando il cursore si sposta fuori dalla finestra. Ad esempio, un'applicazione tiene traccia in genere la posizione del cursore dopo un evento "tasto premuto" del mouse, seguendo il cursore fino a quando si verifica un evento "pulsante fino". Se un'applicazione non ha catturato input del mouse e l'utente rilascia il pulsante del mouse all'esterno della finestra, la finestra non riceve il pulsante messaggio.

Un thread puņ utilizzare la funzione GetCapture per determinare se una delle sue finestre ha catturato il mouse. Se una delle finestre del thread ha catturato il mouse, GetCapture recupera l'handle della finestra.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index