[RESOLU] Postmessage_( vers un gadget de la fenetre

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

[RESOLU] Postmessage_( vers un gadget de la fenetre

Message par Stefou »

Bonjour à tous et merci d'avance pour me lire et pour me répondre.


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
Dernière modification par Stefou le lun. 16/août/2010 8:08, modifié 1 fois.
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: Postmessage_( vers un gadget de la fenetre

Message par gnozal »

Comme çà ?

Code : Tout sélectionner

Import "" 
  PB_Gadget_SendGadgetCommand.l(Window.l, EventType.l) 
EndImport

#PB_EventType_Perso = #WM_APP + 1

Procedure Traitement_des_evenements(event)
  If EventGadget()=1 ;je pique tous les évenements sur le gadget
    Select EventType()
      Case  #PB_EventType_LeftClick
        PB_Gadget_SendGadgetCommand(GadgetID(1), #PB_EventType_Perso)
        event = 0
    EndSelect
  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()
    
    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
On importe une fonction interne à PB.
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Re: Postmessage_( vers un gadget de la fenetre

Message par Stefou »

MMMMMEEEEEEERRRRRRRRRCCCCCCCCCIIIIIIII :D :D :D big boss

C'est vraiment propre ! Et je ne l'aurais jamais trouvé !

Ou faut-il chercher pour trouver cela ??


Encore merci
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: Postmessage_( vers un gadget de la fenetre

Message par gnozal »

Stefou a écrit :Ou faut-il chercher pour trouver cela ??
Le répertoire SDK de Purebasic et le forum international, où la solution PB_Gadget_SendGadgetCommand() a été postée plusieurs fois.
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Re: Postmessage_( vers un gadget de la fenetre

Message par Stefou »

Merci, je vais creuser cela, mais au premier abord cela ne semble pas donné.... :?
Répondre