Un autre prôbleme a livré a votre sagacité : détecté le click gauche de la souris.
Testé le code suivant pour tous comprendre (et évétuellement y pourté une solution, moi j'échoué...

En deux mots, comment intercepté le click gauche de la souris et déterminé l'état (appuyer ou relacher) avant le gadget ?
Code : Tout sélectionner
Enumeration
#f1:#GadgetImage
EndEnumeration
If OpenWindow(#f1,10,10,300,300,"Test sur Souris",#PB_Window_SystemMenu)
If CreateGadgetList(WindowID(#f1))
;Commenté ou décommenté la ligne suivant pour bien voir la différence de traitement
;souris potionné sur le gadget
;ligne Commenté : le click gauche appuyé est détecté
;ligne décommenté : le click gauche a disparu (intersecté par la gadget, normal ???)
;Normal, je n'en suis pas sûr !! Car la même action faite avec le bouton droit de la souris
;n'est pas capturé et pourtant il existe bien un evenement : #PB_EventType_RightClick
;Pourquoi cette différence de traitement ??
;Y-t-il un BUG ??
ImageGadget(#GadgetImage, 50, 50, 200, 200, 0, #PB_Image_Border)
;est-il possible intécepté le click gauche avant le gadget, si oui avec quel commande ?
;J'ai essayé avec la fonction API GetKeyState_(#VK_LBUTTON), sans arrivé a un résultat satisfaisant !
;Y a-til une autre commande (Voir une API) utilisable ?
;Avec quel méthode peut-on bien faire la distinction entre bouton appuyer et bouton ralacher
EndIf
Repeat
Select WaitWindowEvent()
Case #WM_RBUTTONDOWN : Debug "Souris Bouton droit appuyer"
Case #WM_RBUTTONUP : Debug "Souris Bouton droit relacher"
Case #WM_LBUTTONDOWN : Debug "Souris Bouton gauche appuyer"
Case #WM_LBUTTONUP : Debug "Souris Bouton gauche relacher"
Case #WM_MOUSEMOVE : ;Debug "Souris en mouvement"
Case #PB_Event_Gadget
Select EventGadget()
Case #GadgetImage : ;Ici les EventType() ne permettent pas la distinction entre
; le bouton appuyer et le bouton relacher ??
;Comment faire cette différence ?
If EventType()=#PB_EventType_LeftClick : EndIf
If EventType()=#PB_EventType_RightClick : EndIf
EndSelect
Case #PB_Event_CloseWindow: End
EndSelect
ForEver
EndIf
Merci de vos sujestion et de vos exemples
