Je propose que l'aide sur l'instruction MDIGadget() soit complétée par un exemple n'utilisant pas #PB_MDI_AutoSize !
Cela permettra de mettre en évidence que l'on peut créer une zone d'afficher maitrisable, surtout si on ne peut pas utiliser un ContainerGadget(), SplitterGadget() ou PanelGadget().
Un bon exemple est celui proposé par CHRIS (voir aussi post
http://purebasic.hmt-forum.com/viewtopi ... 2470#12470)
Code : Tout sélectionner
Code:
Enumeration
#MainWindow
EndEnumeration
Enumeration
#Mdi
#Bouton_1
#Bouton_2
#Saisie
#Editeur1
#Editeur2
EndEnumeration
Enumeration
#MenuPrincipal
#M_Open
#M_Save
#M_Quit
#M_Cut
#M_Copy
#M_Paste
#M_Max
#M_Min
EndEnumeration
If OpenWindow(#MainWindow,0,0,600,500,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget,"Fenêtre MDI")
hMain = WindowID(#MainWindow)
; Tu crée les menus
If CreateMenu(#MenuPrincipal, hMain)
MenuTitle("Fichiers")
MenuItem(#M_Open,"Ouvrir"+Chr(9)+"Ctrl+O")
MenuItem(#M_Save,"Sauver"+Chr(9)+"Ctrl+S")
MenuBar()
MenuItem(#M_Quit,"Quitter"+Chr(9)+"Ctrl+Q")
MenuTitle("Edition")
MenuItem(#M_Copy,"Copier"+Chr(9)+"Ctrl+C")
MenuItem(#M_Cut,"Couper"+Chr(9)+"Ctrl+X")
MenuItem(#M_Paste,"Coller"+Chr(9)+"Ctrl+V")
MenuTitle("Fenêtres")
MenuItem(#M_Max,"Maximiser")
MenuItem(#M_Min,"Minimiser")
EndIf
; Puis la liste de gadgets
If CreateGadgetList(hMain)
MDIGadget(#Mdi, 0, 0, 450, 500, 2, 2)
; La gadgetList concerne le MDI jusqu'à CloseGadgetList()
hMdi1 = AddGadgetItem(#Mdi, -1, "Fenêtre Fille 1")
hMdi2 = AddGadgetItem(#Mdi, -1, "Fenêtre Fille 2")
CloseGadgetList()
; A partir de là, tu peux mettre les gadgets de la fenêtre principale
StringGadget(#Saisie,460,10,130,20,"")
ButtonGadget(#Bouton_1,460,40,130,25,"Bouton 1")
ButtonGadget(#Bouton_2,460,70,130,25,"Bouton 2")
EndIf
Repeat
Select WindowEvent()
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Bouton_1 : Debug "Bouton 1"
Case #Bouton_2 : Debug "Bouton 2"
EndSelect
Case #PB_EventCloseWindow : Quit = #True
EndSelect
Until Quit
EndIf