mensaje de WM_XBUTTONDOWN

Publicado cuando el usuario presiona el primer o segundo botón X mientras el cursor está en el área cliente de una ventana. Si no se captura el mouse, el mensaje se publica en 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 a través de su función WindowProc .

#define WM_XBUTTONDOWN                  0x020B

Parámetros

wParam

La palabra de orden bajo indica si hay varias claves virtuales inactivas. Puede ser uno o varios de los valores siguientes.

Valor Significado
MK_CONTROL
0x0008
La tecla CTRL está abajo.
MK_LBUTTON
0x0001
El botón izquierdo del mouse está inactivo.
MK_MBUTTON
0x0010
El botón central del mouse está inactivo.
MK_RBUTTON
0x0002
El botón derecho del mouse está inactivo.
MK_SHIFT
0x0004
La tecla MAYÚS está inactiva.
MK_XBUTTON1
0x0020
El primer botón X está inactivo.
MK_XBUTTON2
0x0040
El segundo botón X está inactivo.

La palabra de orden superior indica en qué botón se hizo clic. Puede ser uno de los siguientes valores.

Value Significado
XBUTTON1
0x0001
Se hizo clic en el primer botón X.
XBUTTON2
0x0002
Se hizo clic en el segundo botón X.

lParam

La palabra de orden bajo especifica la coordenada x del cursor. La coordenada es relativa a la esquina superior izquierda del área de cliente.

La palabra de orden superior especifica la coordenada y del cursor. La coordenada es relativa a la esquina superior izquierda del área de cliente.

Valor devuelto

Si una aplicación procesa este mensaje, debe devolver TRUE. Para obtener más información sobre cómo procesar el valor devuelto, vea la sección Comentarios.

Comentarios

Use el código siguiente para obtener la información en el parámetro wParam :

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

Use el código siguiente 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 se encuentra en el corto orden bajo del valor devuelto; la coordenada y está en el corto de orden alto (ambos representan valores firmados 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 del valor devuelto. También puede usar la macro GET_X_LPARAM o GET_Y_LPARAM para extraer la coordenada x o y.

Importante

No use las macros LOWORD o 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.

A diferencia de los mensajes WM_LBUTTONDOWN, WM_MBUTTONDOWN y WM_RBUTTONDOWN , una aplicación debe devolver TRUE de este mensaje si la procesa. Al hacerlo, el software que simula este mensaje en Windows sistemas anteriores a Windows 2000 para determinar 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
Winuser.h (incluya Windowsx.h)

Vea también

Referencia

GET_KEYSTATE_WPARAM

GET_X_LPARAM

GET_XBUTTON_WPARAM

GET_Y_LPARAM

GetCapture

SetCapture

WM_XBUTTONDBLCLK

WM_XBUTTONUP

Conceptual

Entrada del mouse

Otros recursos

MAKEPOINTS

PUNTOS