Mensaje WM_XBUTTONDBLCLK
Publicado cuando el usuario hace doble clic en el primer o segundo botón X mientras el cursor está en el área cliente de una ventana. Si no se captura el mouse, se envía el mensaje a la ventana debajo del cursor. De lo contrario, el mensaje se publica en la ventana que ha capturado el mouse.
Una ventana recibe este mensaje mediante la función WindowProc.
#define WM_XBUTTONDBLCLK 0x020D
Parámetros
-
wParam
-
La palabra de orden inferior indica si hay varias teclas virtuales presionadas. Este puede ser uno o varios de los siguientes valores.
Value Significado - MK_CONTROL
- 0x0008
La tecla CTRL está presionada. - MK_LBUTTON
- 0x0001
El botón izquierdo del mouse está presionado. - MK_MBUTTON
- 0x0010
El botón central del mouse está presionado. - MK_RBUTTON
- 0x0002
El botón derecho del mouse está presionado. - MK_SHIFT
- 0x0004
La tecla MAYÚS está presionada. - MK_XBUTTON1
- 0x0020
El primer botón X está presionado. - MK_XBUTTON2
- 0x0040
El segundo botón X está pulsado. La palabra de primer orden indica en qué botón se hizo doble clic. Puede ser uno de los siguientes valores.
Value Significado - XBUTTON1
- 0x0001
Se hizo doble clic en el primer botón X. - XBUTTON2
- 0x0002
Se hizo doble clic en el segundo botón X. -
lParam
-
La palabra de orden inferior especifica la coordenada X del cursor. La coordenada es relativa a la esquina superior izquierda del área cliente.
La palabra de primer orden especifica la coordenada Y del cursor. La coordenada es relativa a la esquina superior izquierda del área cliente.
Valor devuelto
Si la aplicación procesa este mensaje, debería devolver TRUE. Para más información sobre cómo procesar el valor devuelto, consulte la sección Comentarios.
Comentarios
Utilice el siguiente código para obtener la información del parámetro wParam:
fwKeys = GET_KEYSTATE_WPARAM (wParam);
fwButton = GET_XBUTTON_WPARAM (wParam);
Utilice el siguiente código para obtener la posición horizontal y vertical:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Como se indicó anteriormente, la coordenada X está en el entero short de orden inferior del valor devuelto; la coordenada Y está en el entero short de orden superior (ambos representan valores con signo porque pueden tomar valores negativos en sistemas con varios monitores). Si el valor devuelto se asigna a una variable, puede usar la macro MAKEPOINTS para obtener una estructura POINTS a partir del valor devuelto. También puede usar las macros GET_X_LPARAM o GET_Y_LPARAM para extraer la coordenada X o Y.
Importante
No use las macros LOWORD ni HIWORD para extraer las coordenadas X e Y de la posición del cursor porque estas macros devuelven resultados incorrectos en sistemas con varios monitores. Los sistemas con varios monitores pueden tener coordenadas X e Y negativas, y LOWORD y HIWORD tratan las coordenadas como cantidades sin signo.
Solo las ventanas que tengan el estilo CS_DBLCLKS pueden recibir mensajes WM_XBUTTONDBLCLK que el sistema genera siempre que el usuario pulsa, suelta y pulsa de nuevo un botón X dentro del tiempo límite de doble clic del sistema. Al hacer doble clic en uno de estos botones, se generan cuatro mensajes: WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLK y, de nuevo, WM_XBUTTONUP.
A diferencia de los mensajes WM_LBUTTONDOWN, WM_MBUTTONDOWN y WM_RBUTTONDOWN, una aplicación debe devolver TRUE a partir de este mensaje si lo procesa. Al hacerlo, permitirá que el software que simula este mensaje en sistemas Windows anteriores a Windows 2000 determine si el procedimiento de ventana procesó el mensaje o llamó a DefWindowProc para procesarlo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Consulte también
-
Referencia
-
Conceptual
-
Otros recursos