Para detectar rotación de la rueda del mouse en .NET/WinForms, puedo anular OnMouseWheel
. Al hacer clic en se puede detectar anulando OnMouseDown
(es solo el botón Middle
). ¿Pero cómo detecto inclinando de la rueda (inclinación hacia la izquierda/derecha para desplazamiento horizontal)? No se llama a OnMouseWheel
, no a OnMouseDown
cuando inclino la rueda del mouse.¿Cómo detectar la inclinación de la rueda del mouse?
Respuesta
Cubierto here; en resumen, es necesario para manejar el mensaje ventanas manualmente (por lo que no se realiza directamente en NET - es el código del artículo enlazado):
protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.HWnd != this.Handle) { return; } switch (m.Msg) { case Win32Messages.WM_MOUSEHWHEEL: FireMouseHWheel(m.WParam, m.LParam); m.Result = (IntPtr)1; break; default: break; } } ... abstract class Win32Messages { public const int WM_MOUSEHWHEEL = 0x020E;//discovered via Spy++ }
Esto funciona bien cuando su ventana tiene una barra de desplazamiento horizontal, pero no de otra manera. Solo una nota para personas (como yo 8-) que podrían querer abusar de los botones de inclinación para algo más que el desplazamiento horizontal. – RichieHindle
No estoy recibiendo ningún mensaje para mi aplicación al inclinar la rueda del mouse, pero sí otras aplicaciones. ¿Alguna sugerencia? – ChrisF
He publicado esto como una nueva pregunta aquí - http://stackoverflow.com/questions/1092500/why-isnt-my-app-getting-mouse-wheel-tilt-messages – ChrisF
En base a esta article, si usted tiene los controladores IntelliPoint, obtendrá mensajes WM_MOUSEHWHEEL.
- 1. ¿Cómo desplazarse horizontalmente en WPF con la rueda de inclinación del mouse?
- 2. Cómo capturar la rueda del mouse en el panel?
- 3. ¿Cómo puedo desplazar mi panel con la rueda del mouse?
- 4. Usando la rueda de desplazamiento del mouse en GLUT
- 5. Tecla de control más rueda del mouse
- 6. TListView y desplazamiento de la rueda del mouse
- 7. RatónEnlazando la rueda del mouse para ampliar WPF y MVVM
- 8. Desplazamiento horizontal con la rueda del mouse en un div
- 9. la rueda del mouse no se desplaza en tmux
- 10. Desplazamiento horizontal con la rueda del mouse en Visual Studio
- 11. Poner ListBox en ScrollViewer: la rueda del mouse no funciona
- 12. ¿Se puede usar la rueda del mouse al arrastrar/soltar?
- 13. jQuery - jScrollPane con AJAX: la rueda del mouse no funciona
- 14. Rueda del mouse Valor delta siempre 120
- 15. ¿Cómo puedo detectar (y corregir) la inclinación en las imágenes?
- 16. ¿Cómo establecer la velocidad de desplazamiento de la rueda del mouse en IntelliJ?
- 17. ¿Cómo suprimo el desplazamiento de la rueda del mouse de la ventana ...?
- 18. ¿Cómo puedo acelerar la velocidad de desplazamiento en un JScrollPane cuando uso la rueda del mouse?
- 19. ¿Cómo puede mi vista responder a una rueda del mouse?
- 20. Desplazamiento vertical suave de la página con la rueda del mouse y la barra de desplazamiento
- 21. Cómo activar el evento de la rueda del mouse en Firefox con JavaScript?
- 22. Detección de la rueda del mouse en el eje x (izquierda y derecha) con Javascript
- 23. ¿Cómo detener el desplazamiento simultáneo del navegador y la rueda del mouse SWF en AS3?
- 24. ¿Cómo puedo manejar el evento de clic de la rueda del mouse en WPF?
- 25. ¿Cómo hacer que JScrollPane recorra 1 línea por cada paso de la rueda del mouse?
- 26. Cómo redirigir el mensaje de la rueda del mouse a otras ventanas?
- 27. Javascript: ¿Capture el evento de la rueda del mouse y no se desplace por la página?
- 28. Cómo deshabilitar la rueda del mouse, haga clic en el botón?
- 29. Cómo puedo hacer que la rueda del mouse funcione correctamente con Silverlight 4 ScrollViewer
- 30. Evento de rueda de mouse 'ficticio' desencadenante
La solución de Marc funciona bien. ¡Gracias! – CarstenK