Seite 1 von 1
MDI Child Fenster
Verfasst: 13.10.2012 14:34
von pureanfänger
Hallo Leute,
ich hänge seit ein paar Stunden schon an den folgenden beiden Problemen:
1. Ist es möglich, einem MDI Child Fenster beim Erstellen einen feste Größe zu geben ?
2. Ist es möglich, ein MDI Child Fenster an einer bestimmten Position innerhalb des MDI-Gadgets zu erstellen ?
Ich hoffe ihr habt dazu eine Idee...
Viele Grüße und einen schönen Samstag Euch allen

Re: MDI Child Fenster
Verfasst: 13.10.2012 14:50
von RSBasic
Code: Alles auswählen
EnableExplicit
Define MDIWindowHandle
#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, 100, 0, 0, 0, 1, 2, #PB_MDI_AutoSize)
AddGadgetItem(0, #MDIChild, "child window")
UseGadgetList(WindowID(#Main))
;Handle deines MDI-Fensters ermitteln
MDIWindowHandle = FindWindowEx_(FindWindowEx_(WindowID(#Main), 0, "MDIClient", 0), 0, "MDI_ChildClass", "child window")
;Feste Größe, also ohne Sizebox
SetWindowLongPtr_(MDIWindowHandle,#GWL_STYLE,GetWindowLongPtr_(MDIWindowHandle,#GWL_STYLE)&~#WS_SIZEBOX)
;Position des MDI-Fensters ändern
SetWindowPos_(MDIWindowHandle, 0,100,100,0,0,#SWP_NOSIZE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
EndIf
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Re: MDI Child Fenster
Verfasst: 13.10.2012 14:59
von pureanfänger
Erst mal unendlich vielen Dank!!!
Allerdings habe ich mich vorhin ein wenig ungenau ausgedrückt, was meine erste Frage angeht.
Ich meinte, ob es möglich wäre das MDI Child Fenster z.B. mit einer Größe 150x200 zu erstellen, da es sonst doch immer an die Größe des MDI-Gadgets angepasst erstellt wird.
Re: MDI Child Fenster
Verfasst: 13.10.2012 15:01
von RSBasic
Code: Alles auswählen
SetWindowPos_(MDIWindowHandle, 0, 0, 0, 150, 200, #SWP_NOMOVE | #SWP_NOZORDER | #SWP_FRAMECHANGED)
Re: MDI Child Fenster
Verfasst: 13.10.2012 15:08
von pureanfänger
Vielen, vielen Dank

Re: MDI Child Fenster
Verfasst: 13.10.2012 18:25
von pureanfänger
Habe das jetzt soweit ausprobiert und funktioniert ganz gut.
Das einzige was mir aufgefallen ist, ist das es beim Öffnen des Fensters ein wenig flimmert, da es schließlich erst groß geöffnet wird und dann erst auf die gewünschte Größe springt.
Kann man das evtl. noch umgehen? Also ich habe schon versucht das Fenster minimiert oder versteckt zu erstellen, bleibt aber leider beim gleichen Effekt.
Re: MDI Child Fenster
Verfasst: 13.10.2012 18:35
von RSBasic
Wenn du in der Parameterliste des Main-Fensters "#PB_Window_Invisible" hinzufügst und zum Schluss nach der Erstellung und Änderung deiner Gadgets wieder mit "HideWindow(#Main, 0)" sichtbar machst, dann siehst du nicht mehr, dass die Größe des MDI-Fensters sich kurz ändert.