WM_MOUSEWHEEL Hooken



  • Wie kann ich die Daten kriegen um wieviel das Mausrad weiterbewegt wurde?
    Ich frags so ab:

    LRESULT CALLBACK MouseHookProc
    (
        int nCode,
        WPARAM wParam,
        LPARAM lParam
    )
    {
        if(nCode < 0)
            return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
                        //WM_MOUSEWHEEL                             
          if(nCode == HC_ACTION && wParam == WM_MOUSEWHEEL)
          {
             printf("%i",???????");     
    
          }
    
        return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
    }
    

    lParam ist ja ein Pointer auf die MOUSEHOOKSTRUCT aber die enthaltet nur die Koordinaten.
    Wenn ich lParam in MOUSEHOOKSTRUCTEX kaste kommen immer unsinnige Werte raus.

    danke



  • In der Doku (genauer hier) steht folgendes:

    zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
    


  • Hi

    Das problem ist aber das bei Der MouseProc wParam die Nachricht ist also WM_MOUSEWHEEL und lParam ein Pointer auf eine MOUSEHOOK Struktur allerdings benötige ich eine MOUSEHOOKEXT Struktur und da weiss ich nicht wie ich die krieg einfaches casten funkt eben nicht.

    danke



  • 1. Du hast aber schon Windows 2000 oder XP?
    2. Hast du mal probiert, direkt einen Pointer auf eine MOUSEHOOKSTRUCTEX-Struktur zu übergeben?

    Anaonsten hab ich jetzt zur Verwendung dieser Struktur in der MSDN-Library auch nicht grad viele Infos gefunden 🙄



  • @flenders

    1. ja hab ich 🕶
      2)Wem soll ich die übergeben?
      Sorry steh jetzt irgendwie auf der Leitung

    Wenn ich in der MSDN MOUSEHOOKSTRUCTEX eingebe krieg ich 3 Ergebnisse einmal die definition der struktur einmal eine Seite über Hooks wo ein Link dazu steht der zur definiton geht und einmal eine Erwähnung in der Liste die X_BUTTONS berücksichtigt oder so ähnlich.



  • Sorry, mein 2. machte keinen Sinn 🙄

    Wie sehen denn die Werte aus, die du beim kasten im HIWORD von mouseData der MOUSEHOOKSTRUCTEX bekommst?



  • Hi

    es kommt immer 65416 raus egal wie fest oder nicht fest ich das Mausrad drehe.



  • 2^16 = 65536
    65536 - 65416 = 120 oder
    65416 - 65536 = -120, was laut Doku den Deltas pro "Klick" entspricht

    So ganz falsch scheint der Wert also nicht zu sein 😃 (HIWORD-Makro hast du ja angewendet, oder? 🙄 )
    Aber es ist jetzt für mich schon zu spät, um noch klar denken zu können 😉

    [ Dieser Beitrag wurde am 27.04.2003 um 23:55 Uhr von flenders editiert. ]



  • Hi

    Da das hatte ich gemacht.

    Hab jetzt aber rausgefunden worans liegt.
    HIWORD() gibt ja QORD zurück und da gibts ja keine - Zahlen hab das jetzt in
    signed short konvertiert jetzt gehts

    vielen dank noch


Anmelden zum Antworten