Bonsoir squale, bienvenue sur PB
Pour ton soucis : Tu fais une erreur de principe sur le fonctionnement de ta fenêtre.
Les gadgets que tu créés sont toujours affichés sur la fenetre, à moins que tu ne les caches (commande : Hidegadget()) ou que tu les détruises (commande : FreeGadget()).
Si tu les caches, tu pourras les rappeler plus tard, si tu les détruits tu devrais le recréer.
Personnellement pour afficher des contenus différents sur une même fenêtre je gère quels gadgets sont visibles et à quel moment.
Tu peux aussi créer des fenêtres différentes et passer de l'autre à l'autre.
Une solution intéressante consiste à utiliser le ContainerGadget() pour mettre tes différents affichages dedans, puis les montrer / cacher tous en même temps.
Voici un petit exemple :
Code : Tout sélectionner
fenetre_principale = OpenWindow(#PB_Any, 0, 0, 400, 200, "Test de plusieurs affichages", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
If fenetre_principale <> 0
Bouton_pour_changer_d_affichage = ButtonGadget(#PB_Any, (WindowWidth(fenetre_principale) - 200) / 2, WindowHeight(fenetre_principale) - 30, 200, 20, "Changer d'affichage")
; on créé le container de la 1ère page
Container_affichage_1 = ContainerGadget(#PB_Any, 10, 10, WindowWidth(fenetre_principale) - 20, WindowHeight(fenetre_principale) - 40)
; les gadgets qui suivent sont ajouté dans cette page.
ButtonGadget(1, 10, 10, 70, 20, "Boutton 1")
ButtonGadget(2, 90, 10, 70, 20, "Boutton 2")
; on ferme la liste de gadget du container 1
CloseGadgetList()
; on créé le container de la 2ème page
Container_affichage_2 = ContainerGadget(#PB_Any, 10, 10, WindowWidth(fenetre_principale) - 20, WindowHeight(fenetre_principale) - 40)
; les gadgets qui suivent sont ajouté dans cette page.
ButtonGadget(3, 10, 30, 70, 20, "Boutton 3")
ButtonGadget(4, 90, 50, 90, 20, "Boutton 4")
; on ferme la liste de gadget du container 2
CloseGadgetList()
HideGadget(Container_affichage_2, #True)
page = 1
Else
; Il y a un problème et la fenêtre ne peut-être créée (n'arrive jamais)
End
EndIf
; boucle principale
Repeat
event = WaitWindowEvent()
If event = #PB_Event_Gadget
Select EventGadget()
Case Bouton_pour_changer_d_affichage
If page = 1
page = 2
HideGadget(Container_affichage_1, #True)
HideGadget(Container_affichage_2, #False)
Else
page = 1
HideGadget(Container_affichage_2, #True)
HideGadget(Container_affichage_1, #False)
EndIf
EndSelect
EndIf
Until event = #PB_Event_CloseWindow
End
Si tu as plus de 2 pages, gérer les containers dans une liste ou un tableau est plus simple pour les cacher facilement.
Voila, pour le reste, regarde bien les exemples c'est super utile !