Page 1 sur 1
Double clic
Publié : jeu. 29/janv./2004 13:28
par Le Soldat Inconnu
Salut,
un petit souci pour aobtenir l'évènement double-clic.
le seul élément que je réussi à obtenir, c'est le simple clic, mais le douvle clic, je ne le voit pas du tout.
une idée ?
voilà le code qui affiche les évènements pour voir ce qui ce passe quand on fait un doubleclic
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 200, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Souris")
Repeat
Event = WaitWindowEvent()
If Event <> 160 And Event <> 512
If Event = #WM_LBUTTONDOWN
Debug "Bouton gauche appuyé"
ElseIf Event = #WM_LBUTTONUP
Debug "Bouton gauche relaché"
ElseIf Event = #WM_LBUTTONDBLCLK
Debug "Double clic gauche"
ElseIf Event = #WM_RBUTTONDOWN
Debug "Bouton droit appuyé"
ElseIf Event = #WM_RBUTTONUP
Debug "Bouton droit relaché"
ElseIf Event = #WM_RBUTTONDBLCLK
Debug "Double clic droit"
Else
Debug Event
EndIf
EndIf
Until Event = #WM_CLOSE
EndIf
Publié : jeu. 29/janv./2004 13:50
par Le Soldat Inconnu
marche pas non plus comme ceci car je n'ai pas de gadget, je veux détecter le doubleclic dans le vide ou sur une image
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 200, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Souris")
Repeat
Event = WaitWindowEvent()
EventType = EventType()
If EventType = #PB_EventType_LeftClick
Debug "Clic gauche"
ElseIf EventType = #PB_EventType_LeftDoubleClick
Debug "Double clic gauche"
ElseIf EventType = #PB_EventType_RightClick
Debug "Clic droit"
ElseIf EventType = #PB_EventType_RightDoubleClick
Debug "Double clic droit"
EndIf
Until Event = #WM_CLOSE
EndIf
Publié : jeu. 29/janv./2004 21:26
par Anonyme2
Salut Régis,
le deuxième code peut pas marcher car les événements sont liés à des gadgets.
Pour le premier code, je ne sais pas si PB retourne les événements que tu tentes de capturer, utilise une callback pour gérer les messages WM_LBUTTONDBLCLK etc.
Publié : jeu. 29/janv./2004 22:22
par Le Soldat Inconnu
le deuxième code peut pas marcher car les événements sont liés à des gadgets.
j'ai dit quoi dans mon message ?? hein, alors, tu as encore lu mon message en diagonal
bon, avec le wincallback, v essayé de voir si l'évènement que je cherche si trouve
Publié : jeu. 29/janv./2004 22:35
par Le Soldat Inconnu
marche pas avec le callback ou alors je l'ai codé comme un cochon

Publié : jeu. 29/janv./2004 22:56
par Le Soldat Inconnu
j'ai réussi à obtenir qlq chose qui marche
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 200, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Souris")
Repeat
Event = WaitWindowEvent()
If Event = #WM_LBUTTONDOWN And (DoubleClic = 0 Or DoubleClic = 2)
DoubleClic = DoubleClic + 1
ElseIf Event = #WM_LBUTTONUP And DoubleClic = 1
DoubleClic = DoubleClic + 1
ElseIf Event = #WM_LBUTTONUP And DoubleClic = 3
Debug "Double clic gauche"
DoubleClic = 0
Else
DoubleClic = 0
EndIf
If Event = #WM_RBUTTONDOWN And (DoubleClic = 0 Or DoubleClic = 2)
DoubleClic = DoubleClic + 1
ElseIf Event = #WM_RBUTTONUP And DoubleClic = 1
DoubleClic = DoubleClic + 1
ElseIf Event = #WM_RBUTTONUP And DoubleClic = 3
Debug "Double clic droit"
DoubleClic = 0
Else
DoubleClic = 0
EndIf
Until Event = #WM_CLOSE
EndIf
Publié : jeu. 29/janv./2004 23:06
par Chris
Faut cliquer où, pour voir quelque chose???
Parce que chez moi, j'ai beau cliquer comme un fou partout sur l'écran, y'a rien qui s'affiche
Chris

Publié : jeu. 29/janv./2004 23:16
par Chris
Code : Tout sélectionner
Procedure.l GetMouseMessage(WinID.l, Message.l, wParam.l, lParam.l)
resultat.l = #PB_ProcessPureBasicEvents
Select Message
Case #WM_LBUTTONDBLCLK
Debug "Double clic Gauche"
Case #WM_RBUTTONDBLCLK
Debug "Double clic Droit"
Case #WM_MBUTTONDBLCLK
Debug "Double clic Milieu"
EndSelect
ProcedureReturn resultat
EndProcedure
hWnd = OpenWindow(0, 100, 100, 100, 100, #PB_Window_SystemMenu|#PB_Window_ScreenCentered , "Double clic")
SetClassLong_(hWnd, #GCL_STYLE, GetClassLong_(hWnd, #GCL_STYLE)|#CS_DBLCLKS)
SetWindowCallback(@GetMouseMessage())
Repeat
Select WindowEvent()
Case #PB_Event_CloseWindow : quit = 1
EndSelect
Until quit = 1
End
Ca irait pas, ça???
C'est pas de moi!!!, (enfin, je ne pense pas

). J'ai du piquer ça dans CodeArchiv, mais je ne sais plus ou
C'est dans un de mes projets non terminés, (comme tant d'autres...). J'ai juste viré les fonctions pour mettre les debug à la place
Chris

Publié : ven. 30/janv./2004 9:52
par Le Soldat Inconnu
si ça marche pas chez toi, c parce quand tu double clic, tu bouge la souris
bon, je me suis débrouiller avec ton code, j'ai viré le callback et c bon
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 200, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Souris")
SetClassLong_(WindowID(), #GCL_STYLE, GetClassLong_(WindowID(), #GCL_STYLE) | #CS_DBLCLKS) ; Active la gestion du double clic
Repeat
Event = WaitWindowEvent()
If Event = #WM_LBUTTONDOWN
Debug "Bouton gauche appuyé"
ElseIf Event = #WM_LBUTTONUP
Debug "Bouton gauche relaché"
ElseIf Event = #WM_LBUTTONDBLCLK
Debug "Double clic gauche"
ElseIf Event = #WM_RBUTTONDOWN
Debug "Bouton droit appuyé"
ElseIf Event = #WM_RBUTTONUP
Debug "Bouton droit relaché"
ElseIf Event = #WM_RBUTTONDBLCLK
Debug "Double clic droit"
EndIf
Until Event = #WM_CLOSE
EndIf