Gestion double clic souris [Résolu]

Signaler
Messages postés
89
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
22 mai 2008
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
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

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
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.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Question : sais-tu déjà repérer un simple clic n'importe sur l'écran ?

Su oui, le reste sera facile.....
Dis-nous
Messages postés
89
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
22 mai 2008

oui je sais mais j'arrive pas avec le double clic
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
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
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Même en utilisant un simple timer et une booléenne .... fastoche
Messages postés
89
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
22 mai 2008

fastoche pour vous lol, j'ai essayer mais j'y arrives pas merci quand meme !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
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


 
Messages postés
89
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
22 mai 2008

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.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
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.....
Messages postés
89
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
22 mai 2008

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.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
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
Messages postés
89
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
22 mai 2008

MERCI
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
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.
Messages postés
89
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
22 mai 2008

le probleme c que je ne conaissait absolument pas la fonction timer mais bien le controle timer.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
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.
Messages postés
89
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
22 mai 2008

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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
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