Mensaje WM_MOUSEHWHEEL
Se envía a la ventana activa cuando se inclina o se rota la rueda del mouse horizontal. La función DefWindowProc propaga el mensaje al elemento primario de la ventana. No debe haber ningún reenvío interno del mensaje, ya que DefWindowProc lo propaga a la cadena primaria hasta que encuentra una ventana que lo procesa.
Una ventana recibe este mensaje mediante la función WindowProc.
#define WM_MOUSEHWHEEL 0x020E
Parámetros
-
wParam
-
La palabra de primer orden indica la distancia que gira la rueda, expresada en múltiplos o factores de WHEEL_DELTA, que se establece en 120. Un valor positivo indica que la rueda se ha rotado hacia la derecha; un valor negativo indica que la rueda se ha rotado hacia la izquierda.
La palabra de orden inferior indica si hay varias teclas virtuales presionadas. Este parámetro puede ser uno o más 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. -
lParam
-
La palabra de orden inferior especifica la coordenada x del puntero, relativa a la esquina superior izquierda de la pantalla.
La palabra de orden superior especifica la coordenada y del puntero, relativa a la esquina superior izquierda de la pantalla.
Valor devuelto
Si la aplicación procesa este mensaje, debe devolver cero.
Comentarios
Use el código siguiente para obtener la información en el parámetro wParam.
fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_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);
Tal como se indicó anteriormente, la coordenada X está en el valor short de orden inferior del valor devuelto; la coordenada Y está en el valor short de primer orden (ambos representan valores con signo porque pueden adoptar 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.
El giro de la rueda es un múltiplo de WHEEL_DELTA, que se establece en 120. Este es el umbral para que se realice una acción y una acción de este tipo (por ejemplo, desplazarse un incremento) se debe producir para cada delta.
El delta se estableció en 120 para permitir que Microsoft u otros proveedores creen ruedas de resolución más finas (por ejemplo, una rueda de rotación libre sin muescas) para enviar más mensajes por rotación, pero con un valor más pequeño en cada mensaje. Para usar esta característica, puede agregar los valores de delta entrantes hasta que se alcance WHEEL_DELTA (a fin de obtener la misma respuesta para una rotación diferencial), o bien desplácese por líneas parciales en respuesta a mensajes más frecuentes. También puede elegir una granularidad de desplazamiento y acumular deltas hasta que se alcance.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo compatible |
Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado |
|
Consulte también
-
Referencia
-
Conceptual
-
Otros recursos