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 : 48
Enregistré le : sam. 13 avr. 2019 13:58
Status : Hors ligne

Valeur MOUSE_WHEEL qui ne bouge pas

#1

Message par littlechiki »

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 : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: Valeur qui ne bouge pas

#2

Message par walkson »

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
(Je ne compte que les heures heureuses)
littlechiki
Niveau 3
Niveau 3
Messages : 48
Enregistré le : sam. 13 avr. 2019 13:58
Status : Hors ligne

Re: Valeur MOUSE_WHEEL qui ne bouge pas  

#3

Message par littlechiki »

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