Pour détecter rotation de la molette de la souris dans .NET/WinForms, je peux remplacer OnMouseWheel
. En cliquant sur peut être détecté en remplaçant OnMouseDown
(il s'agit simplement du bouton Middle
). Mais comment puis-je détecter inclinaison de la roue (inclinaison vers la gauche/droite pour le défilement horizontal)? Ni OnMouseWheel
, ni OnMouseDown
est appelé lorsque je incline la molette de la souris.Comment détecter l'inclinaison de la molette de la souris?
Répondre
Recouvert here; bref, vous devez gérer le message Windows manuellement (à n'est pas traitée directement dans .NET - est le code de l'article lié):
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++ }
Cela fonctionne correctement lorsque votre fenêtre a une barre de défilement horizontale, mais pas autrement. Juste une note pour les personnes (comme moi 8-) qui pourraient vouloir abuser des boutons d'inclinaison pour quelque chose d'autre que le défilement horizontal. – RichieHindle
Je ne reçois aucun message de mon application en inclinant la molette de la souris, mais d'autres applications le sont. Aucune suggestion? – ChrisF
J'ai posté cela comme une nouvelle question ici - http://stackoverflow.com/questions/1092500/why-isnt-my-app-getting-mouse-wheel-tilt-messages – ChrisF
Sur la base de cette article, si vous avez les pilotes IntelliPoint, vous obtiendrez des messages de WM_MOUSEHWHEEL.
- 1. MSHTML incorporé: la molette de la souris est ignorée
- 2. Touche de commande plus molette de la souris
- 3. Molette de défilement de la souris dans l'application Flash/Flex
- 4. Comment puis-je gérer l'événement de clic de la molette de la souris dans WPF?
- 5. Détection du mouvement de la molette de la souris dans Flash (AS3)
- 6. Modifier la valeur de l'élément HTML avec la molette de la souris dans Firefox
- 7. Comment régler manuellement le focus dans AS3 pour que la molette de la souris fonctionne?
- 8. Comment faire un incrément/décrément DateTimePicker sur la molette de la souris
- 9. Valeur de la molette Mousewheel toujours 120
- 10. Comment détecter l'état de la souris dans Qt sans MouseEvent
- 11. toujours faire défiler le cadre parent avec la molette de la souris?
- 12. détecter la souris Déplacer l'événement sur JPanel
- 13. C# Roulette de la souris de la souris ListView sans mise au point
- 14. Comment détecter le clic droit de la souris tout en appuyant sur le bouton gauche de la souris dans IE?
- 15. Comment détecter la souris en bougeant le bouton gauche
- 16. Comment détecter l'état enfoncé de la touche shift lorsque vous déplacez la souris
- 17. Comment détecter si la souris est à l'intérieur de la forme entière et des contrôles enfants?
- 18. Réglage de la position de la souris
- 19. Comment puis-je détecter le bouton de la souris sur un contrôle Winforms?
- 20. sIFR défilement roue de la souris gel dans Firefox
- 21. Comment détecter la version linguistique de Windows
- 22. WPF - Envoyer les messages de la roulette de la souris à un contrôle Frame/WebBrowser
- 23. Vitesse de défilement avec la position de la souris
- 24. vitesse de suivi de la souris Javascript
- 25. Détecter la position d'un div
- 26. Comment obtenir le type de curseur global de la souris?
- 27. Changer le curseur de la souris
- 28. Saisir le mouvement de la souris
- 29. Déplacement de la souris par programme
- 30. Comment accéder aux événements de mouvement de la souris dans WPF, quel que soit l'emplacement de la souris?
La solution de Marc fonctionne bien. Je vous remercie! – CarstenK