我正在使用鼠标滚轮在我的DotNet应用程序中进行操作,我是按照以下步骤完成的:
MSDN MouseWheel example
但是,在我的应用程序中,如果能够同时使用现有的硬件水平鼠标滚轮,那将会很好。但是在.Net中如何检测到这种情况呢?
我正在使用Logitech RX1500或m-RAG97。
祝好,
-
* 解决方案 *
重写WinProc以捕获鼠标滚轮事件。
我正在使用Logitech RX1500或m-RAG97。
![enter image description here](https://istack.dev59.com/Oggsj.webp)
-
* 解决方案 *
重写WinProc以捕获鼠标滚轮事件。
MustInherit Class Win32Messages
Public Const WM_MOUSEHWHEEL As Integer = &H20e
'discovered via Spy++
End Class
Protected Overrides Sub WndProc(ByRef m As Message)
MyBase.WndProc(m)
If m.HWnd <> Me.Handle Then
Return
End If
Select Case m.Msg
Case Win32Messages.WM_MOUSEHWHEEL
FireMouseHWheel(m.WParam, m.LParam)
m.Result = DirectCast(1, IntPtr)
Exit Select
Case Else
Exit Select
End Select
End Sub
Dim tilt As Int32 = DirectCast(Utils.HIWORD(wParam), Int16)
。它显示错误“值类型为'整数'无法转换为'短整型'”,并突出显示
Utils.HIWORD(wParam)`。我认为您一定已经克服了这一障碍,因此如果您能给我一点指导,我将不胜感激。干杯! - Antagony