Valeur MOUSE_WHEEL qui ne bouge pas

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
littlechiki
Niveau 3
Niveau 3
Messages : 41
Enregistré le : sam. 13 avr. 2019 12:58
Status : Hors ligne

Valeur MOUSE_WHEEL qui ne bouge pas

#1

Message par littlechiki » mer. 27 nov. 2019 12:35

Bonjour,
J'ai un problème concernant ce code
#include <Misc.au3>
#include <WinAPI.au3>
Global $wheel
While 1
        If _IsPressed(01) Then; Si on appuie sur le clic gauche, on montre la valeur $wheel puis on ferme
                MsgBox(0,"",$wheel)
                Exit
        EndIf
        Switch GUIGetMsg()
                Case $MOUSE_WHEEL_UP
                        If $wheel <= 3 Then
                                $wheel += 1
                        EndIf
                Case $MOUSE_WHEEL_DOWN
                        $wheel = 0
        EndSwitch
WEnd
En fait je me demandais pourquoi ma valeur $wheel ne bouge pas malgré le fait que je bouge la molette de la souris.
Je ne comprend pas du tout et si quelqu'un pouvait m'aider, je lui serait grandement reconnaissant. Sur ce merci pour vos réponses !
Modifié en dernier par littlechiki le mer. 27 nov. 2019 20:03, modifié 1 fois.

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 732
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: Valeur qui ne bouge pas

#2

Message par walkson » mer. 27 nov. 2019 18:37

Bonjour,
GUIGetMsg() ne renvoie pas $MOUSE_WHEEL_UP ou $MOUSE_WHEEL_DOWN. Voir https://www.autoitscript.fr/autoit3/doc ... GetMsg.htm
Pour voir si la roulette a été tournée dans un sens ou dans l'autre, vous pouvez utiliser cette méthode récupérée sur un site russe dont j'ai oublié le nom de l'auteur (j'ai retrouvé AZJIO)
Global $k1=0
Global $k2=0
GUIRegisterMsg(0x020A , "WM_MOUSEWHEEL")
$Gui = GUICreate("Крути колесо мыши вниз / вверх",  370, 100)
GUICtrlCreateLabel('Функция WM_MOUSEWHEEL срабатывает в момент вращения колёсика мыши. Можно использовать для установки числовых параметров в инпутах c GUICtrlCreateUpdown.', 5, 5, 360, 50)
$Label1 = GUICtrlCreateLabel("колесо мыши сдвинулось вверх 0 раз", 10, 60, 226, 17)
$Label2 = GUICtrlCreateLabel("колесо мыши сдвинулось вниз 0 раз", 10, 80, 226, 17)
$Input=GUICtrlCreateInput("", 240, 65, 100, 21)
GUISetState ()

While 1
        $msg = GUIGetMsg()
        Select
                Case $msg = -3
                        Exit
        EndSelect
WEnd

Func WM_MOUSEWHEEL($hWnd,$nMsg,$wParam,$lParam)
        #forceref $nMsg, $wParam, $lParam
        If $wParam=0x00780000 Then
                $k1+=1
                GUICtrlSetData($Label1, 'колесо мыши сдвинулось вверх '&$k1&' раз')
                WinSetTitle($Gui, '', 'вверх '&$k1&' раз, вниз '&$k2&' раз')
                GUICtrlSetData($Input, $k1&' - '&$k2&' = '&$k1-$k2)
        EndIf
        If $wParam=0xFF880000 Then
                $k2+=1
                GUICtrlSetData($Label2, 'колесо мыши сдвинулось вниз '&$k2&' раз')
                WinSetTitle($Gui, '', 'вверх '&$k1&' раз, вниз '&$k2&' раз')
                GUICtrlSetData($Input, $k1&' - '&$k2&' = '&$k1-$k2)
        EndIf
EndFunc
Facilement adaptable, je vous laisse le soin de traduire mais je pense que ce n'est pas nécessaire pour comprendre :P
Rmq: votre titre n'est vraiment pas terrible !! "Valeur MOUSE_WHEEL qui ne bouge pas" est quand même plus explicite....
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

littlechiki
Niveau 3
Niveau 3
Messages : 41
Enregistré le : sam. 13 avr. 2019 12:58
Status : Hors ligne

Re: Valeur MOUSE_WHEEL qui ne bouge pas  

#3

Message par littlechiki » mer. 27 nov. 2019 20:06

Merci pour ça ! Je vais quand même traduire mais c'est surtout par curiosité :lol: !
En effet mon titre était pas terrible mais j'ai eu beaucoup de mal à trouvé. Le voila changé. Je passe le sujet en résolu !

Répondre