Car-PC.info

Developer - .net - Mausrad / Mousewheel abfragen

derchris - Mo 31 Okt, 2005 17:48
Titel: .net - Mausrad / Mousewheel abfragen
ich verzweifel bald...

so weit hab ichs nu scho:

Code:
    Public Function LowLevelMouseProc( _
        ByVal nCode As Integer, _
        ByVal wParam As Integer, _
        ByVal lParam As MSLLHOOKSTRUCT) As Integer

        If (nCode = HC_ACTION) Then
            Select Case wParam
                Case WM_LBUTTONDOWN
                    RaiseEvent LeftClick(Cursor.Position)
                Case WM_MOUSEWHEEL
                    MessageBox.Show(GetHiWord(lParam.mouseData))
            End Select
        End If

        Return CallNextHookEx(hhkLowLevelMouse, nCode, wParam, lParam)
    End Function


das Prob ist bloss, dass er bei MessageBox.Show(GetHiWord(lParam.mouseData)), was ja die Umdrehungen (positiv -> zum User hin, negativ -> vom User weg) ausgeben sollte, IMMER 18 rauskommt...
wie soll ich dann wissen wie oft und in welche Richtung das Rad gedreht wurde?

Hatte jemand schon mal ein ähnliches Prob?
Ich könnts auch in c# machen aber da hab ich das selbe prob
derchris - Mo 31 Okt, 2005 19:26
Titel:
so, jetzt ma ein Versuch mit den ManagedHooks:


Code:
      private void mouseHook_MouseEvent(Kennedy.ManagedHooks.MouseEvents mEvent, Point point)
      {
         if(base.Visible && mEvent.ToString() == MouseEvents.MouseWheel.ToString())
         {
            string msg = string.Format("Mouse event: {0}: ({1},{2}).", mEvent.ToString(), point.X, point.Y);
            AddText(msg);
            if(mEvent.ToString() == MouseEvents.MouseWheel.ToString())
            {
               if(point.Y > 0)
               {
                  AddText("Rechts");
               }
               else
               {
                  AddText("Links");
               }
            }
         }   
      }


was kommt raus? Immer "Links" (point.Y ist immer 0)
ppx - Do 10 Nov, 2005 21:51
Titel:
Du brauchst das HIGHWORD vom wParam.
Ein positiver Wert bedeutet das das Rad vom User weg, ein negativer Wert, das das Rad zum User hin bewegt wurde (wenn ich das noch richtig im Kopf habe)
Alle Zeiten sind GMT + 1 Stunde
Powered by phpBB2 Plus and Kostenloses Forum based on phpBB