MDIGadget()

Syntax

Ergebnis = MDIGadget(#Gadget, x, y, Breite, Höhe, UnterMenü, MenüEintrag [, Flags])
Beschreibung
Erstellt einen Klient-Bereich ("client area"), in welchem ChildWindow's (abgeleitete Fenster) dargestellt werden können. Diese ChildWindow's sind in diesem Bereich vollständig durch den Anwender bewegbar und größenveränderbar.

Parameter

#Gadget Eine Nummer, um das neue Gadget zu identifizieren. #PB_Any kann verwendet werden, um diese Nummer automatisch zu generieren.
x, y, Breite, Höhe Die Position und die Abmessungen des neuen Gadgets.
UnterMenü Der Menü-Index, zu dem die MDI-Fenstereinträge hinzugefügt werden sollen.

Ein MDIGadget() ist immer an ein Fenster-Menü (siehe CreateMenu()) geknüpft. Daher kann sich ein MDIGadget() nur auf einem Fenster befinden, welches ein Menü besitzt. Das Gadget gibt dem Anwender die Möglichkeit, die Childwindow's mittels einem der Untermenüs des Fensters auszuwählen. Beim 'UnterMenü' Parameter müssen Sie den Index des Untermenüs (erstellt mit MenuTitle()) angeben, zu welchem diese Einträge hinzugefügt werden sollen (das erste Untermenü hat den Index 0). Das Gadget wird einen Trennbalken am Ende dieses Menüs hinzufügen, und anschließend einen Eintrag für jedes aktuell dargestellte Childwindow.
MenüEintrag Der erste Menüeintrag-Index, welcher für die MDI-Fenster verwendet werden soll.

Das Gadget benötigt einen Bereich von Menü-Eintrag-Bezeichnern (siehe den 'MenuID' Parameter von MenuItem()), um diese Menüeinträge hinzufügen zu können. Im 'MenüEintrag' Parameter vom MDIGadget() müssen Sie die niedrigste Nummer angeben, welche das Gadget für diesen Zweck nutzen kann. Es wird die Werte oberhalb dieser Zahl nutzen, wenn neue ChildWindows hinzugefügt werden, daher müssen Sie mindestens so viele Nummern reservieren, wie Sie selbst Einträge hinzufügen wollen. Es ist empfehlenswert, eine größere Nummer als alle anderen Menü-Bezeichner Ihres Programms zu verwenden, um eine mögliche "Kollision" (mit anderen Menüeinträgen) zu vermeiden.
Flags (optional) Flags zum Verändern des Gadget-Verhaltens. Dies kann eine Kombination (verknüpft mit dem bitweisen '|' OR-Operator) der folgenden Konstanten sein:
  #PB_MDI_AutoSize       : Das Gadget passt sich automatisch in der Größe an, um in das übergeordnete ("Parent")
                           Fenster zu passen.
                           Wenn Sie keine anderen Gadgets auf diesem Fenster haben, ist dies eine hilfreiche Option.
  #PB_MDI_BorderLess     : Es wird keine Umrandung um den Klient-Bereich gezeichnet.
  #PB_MDI_NoScrollBars   : Wenn der Anwender ein ChildWindow außerhalb des angezeigten Bereichs verschiebt, werden
                           keine Scrollbalken angezeigt.

Rückgabewert

Gibt bei Erfolg einen Wert ungleich Null zurück, oder Null bei einem Fehler. Wenn #PB_Any als #Gadget Parameter verwendet wurde, dann beinhaltet der Rückgabewert bei Erfolg die automatisch generierte Gadget-Nummer.

Anmerkungen

Aufgrund der Verknüpfung mit dem Fenstermenü kann sich nur ein MDIGadget() auf einem Fenster befinden, natürlich können Sie auf Wunsch ein weiteres auf einem zweiten Fenster platzieren. Sie können dieses Gadget nur direkt auf einem Fenster platzieren, Sie können es NICHT in ein ContainerGadget(), SplitterGadget() oder PanelGadget() einfügen.
Da der Sinn dieses Gadgets darin besteht, dynamisch Daten anzuzeigen, ist es empfehlenswert, das #PB_Any Feature zu nutzen, um ein ChildWindow mit Gadgets zu füllen.

Beim Verwenden von AddGadgetItem() mit diesem Gadget wird dabei ein neues PB Fenster erstellt. Alle Befehle der Window-Bibliothek können zusammen mit diesem neuen Fenster verwendet werden (mit Ausnahme von StickyWindow()). Natürlich sollte sich die für das neue Fenster gewählte Nummer nicht mit einem weiteren offenen Fenster überschneiden, andernfalls wird das andere Fenster geschlossen. Das MDI-Gadget gibt keine Ereignisse zurück. Ereignisse, welche die Child-Fenster betreffen, werden stattdessen als normale Fenster-Ereignisse (#PB_Event_SizeWindow, #PB_Event_CloseWindow, ...) empfangen.

Zu diesem Gadget kann mittels GadgetToolTip() eine 'Mini-Hilfe' hinzugefügt werden.

Die folgenden Befehle können zum Managen des Gadget-Inhalts verwendet werden:

- CountGadgetItems() : Gibt die Anzahl an ChildWindows zurück.
- AddGadgetItem() : Fügt ein neues ChildWindow zum Gadget hinzu.
- ClearGadgetItems() : Schließt alle ChildWindow's.
- GetGadgetState() : Ermittelt das aktuell fokussierte Childwindow.
- SetGadgetState() : Ändert das aktuell fokussierte Fenster oder ordnet die ChildWindow's. (siehe GetGadgetState() für weitere Informationen.)
- SetGadgetAttribute(): Mit den folgenden Attributen:
  #PB_MDI_Image     : Legt ein Hintergrundbild fest. Ein ImageID-Wert muss als Wert übergeben werden 
                      (siehe ImageID()).
  #PB_MDI_TileImage : Legt den "Tile"-Modus (Art der Aneinanderreihung des Bildes) fest. 0 zeichnet 
                      das Bild einfach nur einmal in der linken, oberen Ecke, 1 wiederholt das Bild um den 
                      gesamten Bereich auszufüllen.
Dieses Gadget unterstützt die SetGadgetColor() und GetGadgetColor() Befehle mit dem #PB_Gadget_BackColor Typ zum Ändern der Hintergrundfarbe des MDI-Bereichs.

Beispiel

  #Main = 0
  #MDIChild = 1
  If OpenWindow(#Main, 0, 0, 400, 300, "MDIGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget)
    If CreateMenu(#Main, WindowID(#Main))
      MenuTitle("Menu index 0")
      MenuTitle("MDI windows menu")
        MenuItem(0, "self created item")
        MenuItem(1, "self created item")

      MDIGadget(0, 0, 0, 0, 0, 1, 2, #PB_MDI_AutoSize)
        AddGadgetItem(0, #MDIChild, "child window")
          ; add gadgets here...
      UseGadgetList(WindowID(#Main)) ; wir gehen zurück zur Gadgetliste des Hauptfensters
    EndIf
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf

Siehe auch

AddGadgetItem(), CloseWindow(), CountGadgetItems(), ClearGadgetItems(), GetGadgetState(), SetGadgetState(), GetGadgetAttribute(), SetGadgetAttribute(), GetGadgetColor(), SetGadgetColor(), Window Bibliothek

Unterstützte OS

Windows

<- ListViewGadget() - Gadget Inhaltsverzeichnis - OpenGLGadget() ->