J'ai presque terminé mon treegadget.
J'intercepte les évènements qui vont vers le treegadget, je les traitent et je voudrais renvoyer à la fenêtre principale d'autre évènement.
J'utilise postmessage_(.....pour envoyer mon évenement personnel :#PB_EventType_Perso..... mais je n'arrive pas à bien envoyer les évenements.
Je pourrais les envoyer vers un #wm_user, mais j'ai vraiment envie que cela soit intersepté sur le gadget lui même.
Voici un exemple avec un buttongadget au lieu d'un treegadget :
Code : Tout sélectionner
#PB_EventType_Perso=10
Procedure Traitement_des_evenements(event)
If EventGadget()=1 ;je pique tous les évenements sur le gadget
Select EventType()
Case #PB_EventType_LeftClick
Debug "left Clic"
PostMessage_(WindowID(0),#PB_Event_Gadget,1,#PB_EventType_Perso)
EndSelect
ProcedureReturn 0
EndIf
ProcedureReturn event
EndProcedure
If OpenWindow(0, 0, 0, 300, 400, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(1,10,10,100,20,"Postmessage")
Repeat
event=WaitWindowEvent()
If event<>512 And event<>160 ;Mouse move et barre bleu
Debug "EW"+Str(EventWindow())+" : "+"Evt"+Str(event)+" : "+"ET "+Str(EventType())+" : "+"EG "+Str(EventGadget())+" : "+"wParam"+Str(EventwParam())+" : "+"lParam"+Str(EventlParam())
EndIf
event=Traitement_des_evenements(event)
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Select EventType()
Case #PB_EventType_LeftClick
Debug "Tiens ! Un clic, c'est bizarre "
Case #PB_EventType_Perso
Debug "Bingo"
EndSelect
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
EndIf