Problem mit MDI

Anfängerfragen zum Programmieren mit PureBasic.
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Problem mit MDI

Beitrag von merlin »

ich will ein programm schreiben welches ein MDIGadget benutzt und in dem ich mehrere (x beliebige) kleine MDI Fenster anzeigen lassen kann!

Bie Programmstart soll jedoch erst nur ein MDI Fenster sichtbar sein und der Benutzer soll über das Menü jederzeit sagen können, ob er ein weiteres "neues" fenster haben will, oder das aktuelle Fenster schliesen will" !! Alle Fenster sollen erstmal von der GUI her gleich aussehen aber jedes für sich unabhängig vom anderen sein!?

Wie kann ich so etwas realiesieren? Mit Strukturen? Da ich noch nie wirklich mit strukturen und noch nie mit MDI gearbeitet habe, wäre ich über HILFE sehr dankbar! Wäre auch schön zu wissen, wie ich später erfahren kann, welches MDI Fenster aktiv ist und in welchem MDI Fenster evtl. ein button gedrückt wurde! Schonmal vielen Dank!


Code: Alles auswählen

#Main = 0
  #MDIChild = 1
  If OpenWindow(#Main, 0, 0, 400, 300, #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget,"MDIGadget")
    If CreateGadgetList(WindowID(#Main)) And CreateMenu(#Main, WindowID(#Main))
      MenuTitle("How to do?")
        MenuItem(0, "new child window")
        MenuItem(1, "close child window")
        MenuItem(1, "close all windows")
        
      MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize)
        AddGadgetItem(0, #MDIChild, "child window")
        CreateGadgetList(WindowID(#MDIChild))
        ButtonGadget(20,40,40,180,80,"Test MDI Child 1")
        ButtonGadget(20,40,40,180,80,"Test MDI Child 1")
                 
      UseGadgetList(WindowID(#Main)) ; go back to the main window gadgetlist
    EndIf
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag von merlin »

Hat evtl. jemand eine idee, wie man das ganze einfach realisieren könnte? Hab es leider bisher noch nicht geschafft ;-/ Eine idee von mir war, eine procedure zu schreiben, die immer wieder ein neues MDI Fenster öffnet... (aber das scheint mir irgendwie zu kompliziert zu sein oder ich denk da einfach im moment zu kompliziert!? Ich glaube das einfachste wäre das ganze auf eine Art Structure zu lösen!?
Antworten