Gestion double clic souris

Résolu
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008 - 24 mars 2007 à 19:13
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 24 mars 2007 à 22:54
Bonjour,
J'aimerais savoir comment on peut detecter le double clic souris n'importe ou sur l'ecran et lancer une action à partir de celui-ci.
merci

17 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 mars 2007 à 22:23
Bien...
Désolé, et voici pourquoi, avec précision :
- On ne peut être débutant et , à la fois, utiliser la fonction GetAsyncKeyState (connaissances évoluées) et ne pas comprendre le code simple que je t'ai montré.
- Débutant ? oui, je l'ai été (et totalement seul) ... mais j'ai débuté... en débutant.
Le code du click donné au dessus est un code ne faisant appel à naucune connaissance évoluée... (de l'élémentaire)
Stopclic est une constante et elle a ici la valeur 0.3 .
la seule lecture de  If Abs(Timer - couic) < stopclic Then  devrait te faire comprendre ce que représente cette valeur (0.3 secondes)

Timer est le nom d'une fonction VB (lis ce que tu trouves pour Timer dans ton aide en ligne (pas le contrôle Timer , mais la FONCTION Timer)
Je ne suis pas énervé, mais très surpris.... c'est certain...




Bonne nuit et bonne étude.
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 mars 2007 à 19:22
Question : sais-tu déjà repérer un simple clic n'importe sur l'écran ?

Su oui, le reste sera facile.....
Dis-nous
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
24 mars 2007 à 19:32
oui je sais mais j'arrive pas avec le double clic
0
Utilisateur anonyme
24 mars 2007 à 20:23
Pour te mettre sur la voie ; pense a l'api GetDoubleClickTime
Rien qu'en cherchant celui-ci sur internet tu devrais y trouver pleins d'exemples.




__________
Kenji
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 mars 2007 à 20:41
Même en utilisant un simple timer et une booléenne .... fastoche
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
24 mars 2007 à 20:57
fastoche pour vous lol, j'ai essayer mais j'y arrives pas merci quand meme !
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 mars 2007 à 21:18
Tiens,

je viens de m'amuser (sous VB , pas sous VB.Net... mais l'adaptation est on ne peut plus facile) à contrôler un double click sir un bouton de commande, sans même ajouter un contrôle timer.

Il s'agit là d'une démonstration d'un double click dans ton application, mais le principe du mécanisme reste le même pour l'ensemble de ton écran, dès lors que su sais relever un click... Il te suffit donc de t'en inspirer (et s'il ne te convient pas, je t'en fais un autre avec une variable statique au lieu de la variable couic déclarée ici)

Private couic As Single


Private Sub Command2_Click()
  Const stopclic As Single = 0.3
  If Abs(Timer - couic) < stopclic Then 
      couic = Timer - stopclic
      MsgBox " là tu as double-cliqué"
  Else
    couic = Timer
  End If
End Sub


 
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
24 mars 2007 à 21:51
Jmfmarques ,excuser moi je suis peut etre un peu lourd mais pour recuperer un clic gauche j'utilise la fonction suivante:

Function LeftButton() As Boolean
      LeftButton = (GetAsyncKeyState(vbKeyLButton) And &H8000)
End Function

Je vois pas vraiment comment adapter le bout de code que vous m'avez si gentillement expliqué.
Désolé la dessus je seche.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 mars 2007 à 21:56
Excuse-moi, mais :
à moins que tu n'aies fait un copier-coller sans rien y comprendre,
je ne vois pas où serait ta difficulté à assimiler ce que te retourne ta fonction GetAsyncKeyState quand tu presses le bouton gauche et quand (mon exemple) tu cliques !!!!

Là, tu vois... j'aime plus trop.....
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
24 mars 2007 à 22:10
Si je pose une question sur un forum c'est pour avoir une reponse, sinon je ne vois pas l'interet.
Je sais ce que ma fonction retourne mais je comprends pas ce que represente ton stopclic et timer.
Je ne vois vraiment pas ce qui t'enerve.
Au debut quand tu as commencer à programmer tu n'as jamais eu de difficulté à assimiler des choses ?
et bien moi si et j'en suis désolé mais merci quand meme je vais essayer de comprendre ta reponse.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 mars 2007 à 22:16
salut,
jmfmarques -> apparemment c'est le double click sur toute la surface de l'écran, pas forcément dans son appli
vialstephane -> recherche avec "hook souris", tu auras des pistes plus que complètes ;)

++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
24 mars 2007 à 22:26
MERCI
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 mars 2007 à 22:31
Bonsoir CPT,

Je l'ai bien compris ! (je lui ai même demandé ... ma 1ère question... s'ilo savait déjà "relever" un tel clicl sur l'écran total.... et il a répondu que oui.

Celà ne change absolument rien (je le lui ai dit) au type de mécanisme qu'il doit appliquer à son retour de fonction exactement de la même manière....

En résumé et pour être très clair : deux retours de fonctions (celle là où n'importe quelle autre) envoyés à ce mécanisme de vérification de ce que le 2ème retour intervient moins de 0.3 secondes après le premier déclencherait la msgbox ... c'est tout et c'est simple...

Le code que je lui ai donné est un tel exemple.
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
24 mars 2007 à 22:36
le probleme c que je ne conaissait absolument pas la fonction timer mais bien le controle timer.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 mars 2007 à 22:42
Bon...
Tu auras ainsi eu l'occasion de découvrir cette fonction  et j'en suis heureux.

Pardonne-moi de t'avoir un peu "bousculé", mais c'est un peu dans ma nature et çà correspond principalement à ma volonté de faire avancer les autres...(c'est en réalité une forme de générosité particulière)

Je te souhaite une bonne nuit.
0
vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
24 mars 2007 à 22:45
moi aussi je te souhaite une bonne nuit en plus c vrai ça va m'ouvrir vraiment d'autres horizons cette fonction timer.

merci beaucoup
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 mars 2007 à 22:54
peut-être cumuler avec la proposition de Kenji : GetDoubleClickTime
(pour avoir le temps exact selon la config windows)

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
Rejoignez-nous