Je suis denouveau en panne.
Si maintenant le menupopup réapparait après l'affichage et la fermeture
d'une 2eme fenetre (il fallait lié le menu au gadget) je suis incapable
de détecté les évenement du menupopup.

Où se font-ils, et comment les gérés ? Vous avez une idée

ou une solution ?
Essayer le code ci-joint et dit moi ce qui ne va pas.
Merci d'avance !
Code : Tout sélectionner
Enumeration
#Fenetre1:#Fenetre2
;menu
;menupopup
#MenuPopup3:#MenuPopup3Modifier:#MenuPopup3Supprimer:#MenuPopup3Couper
#MenuPopup3Coller:#MenuPopup3AjouterSous
;gadget
#Button1:#TreeGadget:#Fenetre1StatusBar
#Fenetre2Button1:#Fenetre2Button2
EndEnumeration
Procedure Fenetre1Creation()
If OpenWindow(#Fenetre1, 100, 150, 1024 ,749, #PB_Window_SystemMenu| #PB_Window_ScreenCentered | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "C.S.Programme")
;menu
;menu popup
If CreatePopupMenu(#MenuPopup3)
MenuItem(#MenuPopup3Modifier ,"Modifier")
MenuItem(#MenuPopup3Supprimer ,"Supprimer")
MenuBar()
MenuItem(#MenuPopup3Couper ,"Couper")
MenuItem(#MenuPopup3Coller ,"Coller")
MenuBar()
MenuItem(#MenuPopup3AjouterSous ,"Ajouter sous")
EndIf
If CreateGadgetList(WindowID())
ButtonGadget(#Button1, 20, 70, 100, 40, "Une fenetre", #PB_Button_MultiLine)
TreeGadget (#TreeGadget, 170, 50, 200, 500, #PB_Tree_AlwaysShowSelection ) ;#PB_Tree_CheckBoxes|
SendMessage_(GadgetID(#TreeGadget),$111D,0,12189133);colorise le fond
EndIf
If CreateStatusBar(#Fenetre1StatusBar,WindowID())
AddStatusBarField(200)
AddStatusBarField(600)
EndIf
EndIf
EndProcedure
Procedure Proc_AccesFenetre()
EndProcedure
Procedure StatusInfo(Text1.s,Text2.s) ; Affiche les infos dans la statue barre
StatusBarText(#Fenetre1StatusBar,0,Text1)
StatusBarText(#Fenetre1StatusBar,1,Text2)
EndProcedure
Procedure RempliTree()
For a=0 To 10
AddGadgetItem (#TreeGadget, -1, "Normal Item "+Str(a)) ; if you want to add an image, use
AddGadgetItem (#TreeGadget, -1, "Noeud "+Str(a)) ; UseImage(x) as 4th parameter
OpenTreeGadgetNode(#TreeGadget)
AddGadgetItem(#TreeGadget, -1, "Sub-Item 1")
AddGadgetItem(#TreeGadget, -1, "Sub-Item 2")
AddGadgetItem(#TreeGadget, -1, "Sub-Item 3")
AddGadgetItem(#TreeGadget, -1, "Sub-Item 4")
CloseTreeGadgetNode(#TreeGadget)
AddGadgetItem (#TreeGadget, -1, "File "+Str(a))
Next
EndProcedure
Procedure EnTravaux()
Titre$="En travaux...":Texte$="Désolè, cette fonction n'est pas réalisée !"
MessageRequester(Titre$, Texte$, #PB_MessageRequester_Ok )
EndProcedure
Procedure.b AjoutFenetre()
If OpenWindow(#Fenetre2, 238, 141, 486,200, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Ajout d'une fenétre")
If CreateGadgetList(WindowID())
ButtonGadget(#Fenetre2Button1, 360, 100, 100, 30, "Ok")
ButtonGadget(#Fenetre2Button2, 360, 150, 100, 30, "Annuler")
EndIf
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget ; Evenement gadget
Select EventGadgetID(); retourne le numero du gadget
Case #Fenetre2Button2 :CloseWindow(#Fenetre2): ProcedureReturn 0
Case #Fenetre2Button1 :CloseWindow(#Fenetre2): ProcedureReturn 1
EndSelect
Case #PB_EventCloseWindow
CloseWindow(#Fenetre2): ProcedureReturn 0
EndSelect
ForEver
EndProcedure
;{/ traitement des menus et evénements
Fenetre1Creation()
ShowWindow_(WindowID(),#SW_MAXIMIZE)
RempliTree()
Repeat
Select WaitWindowEvent()
;Case #WM_RBUTTONDOWN :
;If EventGadgetID()=#TreeGadget: DisplayPopupMenu(#MenuPopup3,WindowID()):EndIf ; Le bouton droit de la souris a été clické =>
Case #PB_EventMenu; evenement menu
Select EventMenuID() ; retourne le numero du menu
;menu fichier
;Case #MenuNouveauProjet :Menu_NouveauProjet()
;menu popup
Case #MenuPopup3Modifier :EnTravaux();:;MenuPopup3_Modifier()
Case #MenuPopup3Supprimer :EnTravaux();:MenuPopup3_Supprimer()
Case #MenuPopup3Couper :EnTravaux();:MenuPopup3_Couper()
Case #MenuPopup3Coller :EnTravaux();:MenuPopup3_Coller()
Case #MenuPopup3AjouterSous :EnTravaux();:MenuPopup3_AjouterSous()
EndSelect
Case #PB_Event_Gadget ; Evenement gadget
Select EventGadgetID(); retourne le numero du gadget
Case #Button1 : AjoutFenetre()
Case #TreeGadget
If EventType()=#PB_EventType_RightClick
;ici était le problême du menu popup qui ne se réaffiché pas
;solution donné par Nico, remplacé => DisplayPopupMenu(#MenuPopup3, WindowID())
;par la ligne desous :
DisplayPopupMenu(#MenuPopup3, GadgetID(#TreeGadget))
;Toutefois les evenements menu ne sont plus détectés
Else
LigneSelectionneAbre=GetGadgetState(#TreeGadget);recherche position
If LigneSelectionneAbre<>-1 ;affiche info
Texte1$=Str(LigneSelectionneAbre)+"/"+Str(CountGadgetItems(#TreeGadget)-1)
Texte2$="Niveau de la selection = "+Str(NiveauDeLaSelection)
StatusInfo(Texte1$,Texte2$)
EndIf
EndIf
EndSelect
Case #PB_EventCloseWindow
quit=1:;Menu_QuitterProjet()
EndSelect
;ForEver
Until quit=1; si 1 alors fin de boucle
End