Page 1 sur 1
[R] Detecter un double click sur un label
Posté : lun. 07 févr. 2011 17:20
par TommyDDR
Bonjour,
J'aimerai savoir s'il était possible de détecter un double clic sur un label.
J'ai essayé quelques GUIRegisterMsg mais sans succes
ne marche que sur le fond de la fenêtre (pas sur le label)
ne marche pas sur un label
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("MustDeclareVars", 1)
Opt("GUIOnEventMode", 1)
Dim $Gui
Dim $Gui2
$Gui = GUICreate("test", 170, 150, -1, -1, $WS_POPUPWINDOW)
GUICtrlCreateLabel("Bonjour", 0, 0, 100, 20)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
GUISetState(@SW_SHOW, $Gui)
$Gui2 = GUICreate("", 70, 50, 50, 50, $WS_CHILD, -1, $Gui)
GUICtrlCreateLabel("Bonjour2", 0, 0, 100, 20)
GUISetBkColor(0xFF0000)
GUISetState(@SW_SHOW, $Gui2)
GUIRegisterMsg($WM_LBUTTONDBLCLK, "test")
GUIRegisterMsg($WM_NOTIFY, "test")
While(True)
Sleep(10)
WEnd
Func test($hWnd, $iMsg, $wParam, $lParam)
MsgBox(0, "", "")
EndFunc
Func quit()
Exit
EndFunc
Merci.
Re: [..] Detecter un double click sur un label
Posté : lun. 07 févr. 2011 21:18
par Tlem
C'est un petit peut light là au niveau des contrôles !!!
En fait il faut bien utiliser
GUIRegisterMsg, mais votre partie de test est vraiment trop légère.
Reprenez l'exemple de la documentation de
GUIRegisterMsg et adaptez la fonction
MY_WM_COMMAND à vos besoins.
La partie
MY_WM_DRAWITEM et
DrawButton ne vous seront pas utile dans la cas présent.

Re: [..] Detecter un double click sur un label
Posté : mar. 08 févr. 2011 00:20
par TommyDDR
Ma partie de test est volontairement légère, je cherchai juste un GUIRegisterMsg qui me ferait entrer dans "test" en cliquant / double cliquant sur le label, mais sans succès, je test le WM_COMMAND.
Edit : Je n'avais pas vu l'heure... je regarde ca demain ^^'
Re: [..] Detecter un double click sur un label
Posté : mar. 08 févr. 2011 09:40
par TommyDDR
En effet, $WM_COMMAND correspond parfaitement à ce que je recherche.
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("MustDeclareVars", 1)
Opt("GUIOnEventMode", 1)
Dim $Gui
Dim $Gui2
$Gui = GUICreate("test", 170, 150, -1, -1, $WS_POPUPWINDOW)
GUICtrlCreateLabel("Bonjour", 0, 0, 100, 20)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
GUISetState(@SW_SHOW, $Gui)
$Gui2 = GUICreate("", 70, 50, 50, 50, $WS_CHILD, -1, $Gui)
GUICtrlCreateLabel("Bonjour2", 0, 0, 100, 20)
GUISetBkColor(0xFF0000)
GUISetState(@SW_SHOW, $Gui2)
GUIRegisterMsg($WM_COMMAND, "test")
While(True)
Sleep(10)
WEnd
Func test($hWnd, $iMsg, $wParam, $lParam)
Local $DbClick = BitAND($wParam, 0x00010000)
If($DbClick) Then
ConsoleWrite("Double Clic !" & @CRLF)
EndIf
EndFunc
Func quit()
Exit
EndFunc
Merci.
Résolu.