Condividi tramite


WM_XBUTTONDBLCLK messaggio

Inviato quando l'utente fa doppio clic su XBUTTON1 o XBUTTON2 mentre il cursore si trova nell'area client di una finestra. Se il mouse non viene acquisito, il messaggio viene inserito nella finestra sotto il cursore. In caso contrario, il messaggio viene inviato alla finestra che ha acquisito il mouse.

Una finestra riceve questo messaggio tramite la relativa funzione WindowProc.

#define WM_XBUTTONDBLCLK                0x020D

Parametri

wParam

La parola con ordine basso indica se diverse chiavi virtuali sono inattive. Può essere uno o più dei valori seguenti.

Valore Significato
MK_CONTROL
0x0008
Il tasto CTRL è inattivo.
MK_LBUTTON
0x0001
Il pulsante sinistro del mouse è in basso.
MK_MBUTTON
0x0010
Il pulsante centrale del mouse è in basso.
MK_RBUTTON
0x0002
Il pulsante destro del mouse è in basso.
MK_SHIFT
0x0004
Il tasto MAIUSC è inattivo.
MK_XBUTTON1
0x0020
Il XBUTTON1 è inattivo.
MK_XBUTTON2
0x0040
Il XBUTTON2 è inattivo.

La parola di ordine elevato indica il pulsante su cui è stato fatto doppio clic. Può essere uno dei valori seguenti.

Valore Significato
XBUTTON1
0x0001
È stato fatto doppio clic sul XBUTTON1.
XBUTTON2
0x0002
È stato fatto doppio clic sul XBUTTON2.

lParam

La parola con ordine basso specifica la coordinata x del cursore. La coordinata è relativa all'angolo superiore sinistro dell'area client.

La parola di ordine elevato specifica la coordinata y del cursore. La coordinata è relativa all'angolo superiore sinistro dell'area client.

Valore restituito

Se un'applicazione elabora questo messaggio, deve restituire TRUE. Per altre informazioni sull'elaborazione del valore restituito, vedere la sezione Osservazioni.

Osservazioni

Windows supporta i mouse con un massimo di cinque pulsanti: sinistro, centrale e destro, oltre a due pulsanti aggiuntivi denominati XBUTTON1 e XBUTTON2. I pulsanti XBUTTON1 e XBUTTON2 si trovano spesso sui lati del mouse, vicino alla base. Questi pulsanti aggiuntivi non sono presenti su tutti i mouse. Se presente, i pulsanti XBUTTON1 e XBUTTON2 vengono spesso mappati a una funzione dell'applicazione, ad esempio lo spostamento avanti e indietro in un Web browser.

Usare il codice seguente per ottenere le informazioni nel parametro wParam:

fwKeys = GET_KEYSTATE_WPARAM (wParam); 
fwButton = GET_XBUTTON_WPARAM (wParam); 

Usare il codice seguente per ottenere la posizione orizzontale e verticale:

xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam); 

Come indicato in precedenza, la coordinata x è nell'ordine basso breve del valore restituito; la coordinata y si trova nell' breve di ordine elevato (entrambi rappresentano valori firmati perché possono accettare valori negativi nei sistemi con più monitor). Se il valore restituito viene assegnato a una variabile, è possibile utilizzare la macro MAKEPOINTS per ottenere una struttura POINTS dal valore restituito. È anche possibile utilizzare la macro GET_X_LPARAM o GET_Y_LPARAM per estrarre la coordinata x o y.

Importante

Non utilizzare la LOWORD o macro HIWORD per estrarre le coordinate x e y della posizione del cursore perché queste macro restituiscono risultati non corretti nei sistemi con più monitor. I sistemi con più monitor possono avere coordinate x e y negative e LOWORD e HIWORD considerano le coordinate come quantità non firmate.

Solo le finestre con lo stile CS_DBLCLKS possono ricevere WM_XBUTTONDBLCLK messaggi, che il sistema genera ogni volta che l'utente preme, rilascia e preme di nuovo XBUTTON1 o XBUTTON2 entro il limite di tempo di doppio clic del sistema. Facendo doppio clic su uno di questi pulsanti vengono effettivamente generati quattro messaggi: WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLKe WM_XBUTTONUP di nuovo.

A differenza dei messaggi WM_LBUTTONDBLCLK, WM_MBUTTONDBLCLKe WM_RBUTTONDBLCLK, un'applicazione deve restituire TRUE da questo messaggio se lo elabora. In questo modo il software che simula questo messaggio nei sistemi Windows precedenti a Windows 2000 per determinare se la routine della finestra ha elaborato il messaggio o chiamato DefWindowProc per elaborarlo.

Fabbisogno

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Winuser.h (include Windowsx.h)

Vedere anche

riferimento

DefWindowProc

GET_KEYSTATE_WPARAM

GET_X_LPARAM

GET_XBUTTON_WPARAM

GET_Y_LPARAM

GetCapture

GetDoubleClickTime

SetDoubleClickTime

WM_XBUTTONDOWN

WM_XBUTTONUP

concettuale

input mouse

altre risorse

MAKEPOINTS

POINTS