Identifié un clic sur une ImageGadget
-
- Messages : 305
- Inscription : mer. 05/janv./2005 12:58
- Localisation : http://www.tib-net.com/meca/index.htm
Identifié un clic sur une ImageGadget
Sous windows 98, lorsque je clique sur une ImageGadget, pure me renvoie l'ID du gadget que je peux ensuite gérée. Mais sous 2000, cette ID n'est plus renvoyer ??? Lorsque je clique sur une ImageGadget il ne se passe rien .
Comment peux t'on savoir sur quelle image on à cliquer ?
(Autrement que par la position de la souris)
Merci d'avance
Comment peux t'on savoir sur quelle image on à cliquer ?
(Autrement que par la position de la souris)
Merci d'avance
Vive le temps libre !
-
- Messages : 305
- Inscription : mer. 05/janv./2005 12:58
- Localisation : http://www.tib-net.com/meca/index.htm
Un bout de code.... j'ai essayer de faire simple
Sur win98 le debuger nous sort une serie de 512 et lorsque l'on clique sur l'image, 13100 et 7 qui correspond à l'id de l'image.
Sous win2000 j'ai juste une serie de 512 et lorsque je clique 513 et 514 correspondant au clique...
Sa vous la coupe........ou j'ai fait une c.....ie

Code : Tout sélectionner
OpenWindow(1,10,10,400,400, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "ess")
CreateGadgetList(WindowID())
ImageGadget(7, 5, 5, 200, 200, 0, #PB_Image_Border)
Quit=0
Repeat
If EventWindowID()=1
Evenement =WaitWindowEvent()
Debug Evenement
Select Evenement
Case #PB_EventGadget; *****************Choix d'un bouton
gadget=EventGadgetID()
Debug gadget
Case #WM_CLOSE ; ***************************#PB_EventCloseWindow
Quit=1
EndSelect
EndIf
Until Quit=1
Sous win2000 j'ai juste une serie de 512 et lorsque je clique 513 et 514 correspondant au clique...
Sa vous la coupe........ou j'ai fait une c.....ie

Vive le temps libre !
Essayes ça pour voir:
Code : Tout sélectionner
#STN_CLICKED=0
Procedure WindowCallback(WindowID, Message, wParam, lParam)
Resultat = #PB_ProcessPureBasicEvents
Select Message
Case #WM_COMMAND
Select wParam >>16
Case #STN_CLICKED
Debug "ImageGadget-callback"
EndSelect
EndSelect
ProcedureReturn Resultat
EndProcedure
OpenWindow(1,10,10,400,400, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "ess")
SetWindowCallback(@WindowCallback())
CreateGadgetList(WindowID())
ImageGadget(7, 5, 5, 200, 200, 0, #PB_Image_Border)
Quit=0
Repeat
If EventWindowID()=1
Evenement =WaitWindowEvent()
;Debug Evenement
Select Evenement
Case #PB_EventGadget; *****************Choix d'un bouton
Select EventType()
Case #PB_EventType_LeftClick
Select EventGadgetID()
Case 7
Debug "ImageGadget"
EndSelect
EndSelect
Case #WM_CLOSE ; ***************************#PB_EventCloseWindow
Quit=1
EndSelect
EndIf
Until Quit=1
-
- Messages : 305
- Inscription : mer. 05/janv./2005 12:58
- Localisation : http://www.tib-net.com/meca/index.htm
-
- Messages : 305
- Inscription : mer. 05/janv./2005 12:58
- Localisation : http://www.tib-net.com/meca/index.htm
Sous XP, même résultat que Torp
Ton code doit être modifié, EventWindowID() se place après un WaitWindowEvent() car c'est bien lorsque l'on a intercepté un événement que l'on regarde sur quelle fenêtre il a eu lieu et de quel type il s'agit, sinon on va perdre certains événements (voir la doc de PB)
Ton code doit être modifié, EventWindowID() se place après un WaitWindowEvent() car c'est bien lorsque l'on a intercepté un événement que l'on regarde sur quelle fenêtre il a eu lieu et de quel type il s'agit, sinon on va perdre certains événements (voir la doc de PB)
-
- Messages : 305
- Inscription : mer. 05/janv./2005 12:58
- Localisation : http://www.tib-net.com/meca/index.htm
Bon je le change de place mais cela ne change rien, sous 2000, ou peut être cela vient d'autre part ????
Quelqu'un pourrais essayer sur win2000, j'y comprend rien ????
Code : Tout sélectionner
OpenWindow(1,10,10,400,400, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "ess")
CreateGadgetList(WindowID())
ImageGadget(7, 5, 5, 200, 200, 0, #PB_Image_Border)
Quit=0
Repeat
Evenement =WaitWindowEvent()
Debug Evenement
If EventWindowID()=1
Select Evenement
Case #PB_EventGadget; *****************Choix d'un bouton
gadget=EventGadgetID()
Debug gadget
Case #WM_CLOSE ; ***************************#PB_EventCloseWindow
Quit=1
EndSelect
EndIf
Until Quit=1
Vive le temps libre !