2011-07-07 229 views
3

我用我DOTNET的应用程序中的鼠标滚轮,这是我通过以下完成: MSDN MouseWheel example检测水平鼠标滚轮运动

但在我的应用程序将是巨大的,也可以使用现有的硬件水平鼠标滚轮太。但是,如何在.NET中使用这个功能呢?我使用Logitech RX1500或or m-RAG97enter image description here

问候

-

*解决方案*

覆盖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 
+0

什么是水平轮?你有什么样的鼠标? –

+0

我已添加图片和示例设备。 – Nasenbaer

+0

嗨Nasenbaer,我看到你仍然是一个积极的SO成员,所以希望你会对此作出回应。我正在尝试在VB.NET 2010应用程序中执行此操作。我将CodeNaked中的所有代码都转换为了。但是我在第一个FireMouseWheel子句的第一行遇到问题 - Dim dim As Int32 = DirectCast(Utils.HIWORD(wParam),Int16)'。它显示错误'类型'Integer'的值不能被'Utils.HIWORD(wParam)'突出显示为'Short'。我想你肯定已经克服了这个障碍,所以如果你能给我一点指导,我会很感激。干杯! – Antagony

回答