UTILISER LA MOLETTE DE LA SOURIS DANS VB

olilefou - 13 août 2001 à 17:49
LeCarto
Messages postés
16
Date d'inscription
mardi 28 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2007
- 4 mai 2004 à 16:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/1745-utiliser-la-molette-de-la-souris-dans-vb

LeCarto
Messages postés
16
Date d'inscription
mardi 28 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2007

4 mai 2004 à 16:54
Houla mais certainement, faites donc, moi j'ai juste posté ce code pour information, de toutes façons avec VB.Net c'est obsolète, merci d'avoir complété.
sauron1531
Messages postés
1
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
4 mai 2004

4 mai 2004 à 16:30
Salut,
ton code est pas mal, il manque juste le controle pour définir oukélamouse à "out" . Je te conseille de mettre le code suivant à la ligne 42 du code de la form1:

If mPosX > (Form1.Width / Screen.TwipsPerPixelX) Or mPosX < 0 Or _
mPosY < 0 Or mPosY > (Form1.Height / Screen.TwipsPerPixelY) Then
oukélamouse = "Out" ' elle est dehors
Else
' ancien code
oukélamouse = "Form1" 'Valeur par défaut
End If
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
8 mai 2003 à 00:08
Salut. sympa , mais ton code est contraignant à utiliser. Beaucoup de code ( complexe : API ) est necessaire dans la Form. L'ideal, serait, selon moi, de faire faire le boulot directement par ton composant. :
tu lance le hook depuis le composant. ( ex : Wheel.Init / Wheel.Stop ) )
de plus, le composant cité dans le module , lorsque tu detectes un mouvement de la souris est ecris en dur, tu dois donc créer une fonction de hook par form ou les mouvements molette t'interessent.

pour ta variable oukélélamouse , tu peux utiliser l'API WindowFromPoint , qui renvoie le handle de la fenetre survolee....

petite optimisation algorithmique, encore , mieux vaux utiliser un select case , ou un if then.... elseif .... elseif.......end if , plutot que de mettre tant de conditions le unes sous les autres.

dans Form_Load , plutot qu'un goto laSuite , tu peux faire un Exit Sub.....

voila , c'est juste mon point de vue , si tu te dis que je suis un sale con, et que ton code est bien comme ca , libre a toi.... je dis ca pour t'aider.....
ça marche sous vb mais pas dans l'exe !
c clair que c chiant que la molette marche pas sous vb :) thx
Afficher les 8 commentaires