MouseWheel auswerten

    • Offizieller Beitrag

    Nachdem ich bei meiner Suche nach dem auswerten des Mausrades etliche Scripte gefunden habe, die das per Callback lösen, musste ich jetzt feststellen, dass das viel einfacher geht.
    Man kann einfach $WM_MOUSEWHEEL per GuiRegisterMsg registrieren und bekommt dann alle wichtigen Informationen.
    Hier ist mal ein kleines Beispiel-Script:


    Das zählt den Counter rauf/runter, wenn man sich mit der Maus über dem Counterfeld befindet und das Mausrad dreht.

    Edit: Noch ein Nachtrag, weil mir das gerade erst aufgefallen ist. Wenn es noch andere Control-Elemente auf der GUI gibt, die ebenfalls ein scrollen mit dem Mausrad ermöglichen (z.B. Listviews), dann reicht das obige Beispiel nicht aus. Man muss dann dafür sorgen, dass das Label den Focus bekommt. Das geht ganz gut, indem man die Mausbewegung auswertet und dann dem Control-Element unter der Maus den Focus zuweist:

  • Hallo,


    ich bin ja dank Oscar auf die Lösung mit dem Focus hier gekommen. Allerdings ergibt sich trotzdem noch ein spezielles Problem i.V.m. Listview und der hier eingesetzten Child-Gui. Ich habe das mal hier auf das Grundproblem reduziert skizziert. Anliegend die GuiScroll.au3 und der Quelltext.

    Spoiler anzeigen

    Folgendes tritt hier auf:

    Im Bereich der weissen Child-Gui kann mit der Maus gescrollt werden wegen dem Focus drauf. Klickt man auf einen der beiden Buttons oben, muss man erst wieder innerhalb des Child-Bereiches (außerhalb des Listview-Rahmens) klicken, damit das wieder geht danach (logisch). Die auskommentierte Zeile unten im "Case Else" würde das automatisch machen. Ist die Zeile aktiv, kann man durch Klick in den Parent-Bereich die Sache wieder aktiv machen. Eine zweite Zeile, die z.B. zuerst den Focus auf den Parent-Bereich legt, hilft aber auch nicht.

    Klickt man nun innerhalb des Listview-Rahmens ist der Focus nicht zurückholbar - ausser man klickt erst wieder auf einen Button innerhalb. Wie könnte man das hinbekommen, dass der Focus zwischen beiden automatisch wechselt in dieser Konstellation mit dieser GUIGetCursorInfo-Schleife?

    Dank und Gruß Thomas

    • Offizieller Beitrag

    Du musst den Focus jedes Mal auf den zu scollenden Bereich legen:

    Spoiler anzeigen