[R] Detecter un double clic sur un controle

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

[R] Detecter un double clic sur un controle

#1

Message par TommyDDR »

Bonjour,

J'aimerais savoir s'il était possible de détecter un double clic sur un control.

J'ai essayé :

Code : Tout sélectionner

GUIRegisterMsg($WM_LBUTTONDBLCLK, "Fonction")
Mais ca ne détecte le double clic QUE sur la fenêtre et non sur le contrôle que je veux.

Si quelqu'un sait comment faire, je suis tout ouïe.

Merci.
Modifié en dernier par TommyDDR le ven. 25 juin 2010 18:49, modifié 3 fois.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#2

Message par Tlem »

Ce contrôle est-il dans votre GUI ?
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#3

Message par TommyDDR »

Je suis vraiment désolé pour mon retard...

Oui, mon contrôl est dans ma GUI.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#4

Message par ZDS »

Bonjour.

Personnellement je me suis heurté aux même problèmes que toi, et j'ai fait ma propre tambouille pour ça. Je crois qu'il est possible de gérer les double-clics sur des contrôles en OnEventMode, mais n'étant pas fan d'un traitement par OEM (le fonctionnement n'apparait pas aussi clairement qu'avec un GuiGetMsg) je n'ai jamais eu envie de connaitre la réponse ^^
Voila mon script d'exemple :
► Afficher le textedoubleclic
Bonne lecture, et à bientôt!
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#5

Message par Tlem »

Puisque le contrôle est bien dans votre fenêtre, GUIRegisterMsg devrait fonctionner pour cette détection.

Comme vous le souligné dans votre premier message, ça fonctionne sur la fenêtre GUI, mais dans la fonction GUIRegisterMsg, vous devez rajouter un test sur le contrôle en question. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#6

Message par TommyDDR »

En effet tlem votre proposition est intelligente sauf que le problème est que le RegistrerMsg ne marche QUE sur la fenêtre, pas sur les contrôles, si je double clic sur la fenêtre, ca marche (la fonction se lance) mais si je clic sur un contrôle la fonction ne se lance même pas.

Vous pouvez tester le code suivant (j'ai mis le label en rouge pour bien voir où il est) :
► Afficher le textecode
Ps : ZDS, ta "technique" marche mais est trop bidouille pour être appliquée à des dizaines de contrôles ^^ désolé.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#7

Message par Tlem »

En reprenant votre code, et en ajoutant quelques contrôles pour que ce soit plus parlant :
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#8

Message par TommyDDR »

C'était donc $WM_COMMAND et non $WM_LBUTTONDBLCLK.

Merci.

Résolu... ou pas ^^'

Autre problème : Appliquer le même principe à une ListeView, je me suis renseigné sur msdn et j'ai trouvé "WM_MENUCOMMAND" qui aurait du m'intéresser.

Mais ca ne marche pas :

"The WM_MENUCOMMAND message is sent only for menus that are defined with the MNS_NOTIFYBYPOS flag set in the dwStyle member of the MENUINFO structure." Comment définir le "MNS_NOTIFYBYPOS" ?
Modifié en dernier par TommyDDR le jeu. 24 juin 2010 14:45, modifié 1 fois.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#9

Message par Tlem »

Regardez l'exemple de _GUICtrlListBox_Create().
Je pense que le code devrait s'adapter à la ListeView. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#10

Message par TommyDDR »

En effet, c'est ce que je recherche, mais il n'est pas possible de l'appliquer sur une simple GUICtrlCreateListView ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#11

Message par Tlem »

Ma réponse est dans la deuxième partie de mon message. :shock:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#12

Message par TommyDDR »

Je me suis peut être mal exprimé ^^ :

"J'ai essayer avec une simple GUICtrlCreateListView mais sans effet, la fonction ne se lance pas."

Voila.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#13

Message par Tlem »

Et vous avez essayé comment ?
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#14

Message par TommyDDR »

Et bien j'ai repris texto le code de l'exemple en remplacant par GUICtrlCreateListViexItem :
► Afficher le textecode
Le ToolTip n'est jamais affiché.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#15

Message par Tlem »

Vous cherchez sans doute à faire quelque chose dans ce genre :
► Afficher le texte
:roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Detecter un double clic sur un controle

#16

Message par TommyDDR »

Oui c'est bien ca, ce n'est donc pas possible avec un traditionnel "GUICtrlCreateListView" + "GUICtrlCreateListViewItem, il faut passer par un "_GUICtrlListView_AddItem".

Merci.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Detecter un double clic sur un controle

#17

Message par Tlem »

Voici un autre code qui contrôle l'utilisation du double clic. Ceci sera sans doute utile plus tard pour d'autres utilisateurs.
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre