2011-07-07 276 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

回答