Seite 1 von 1

Maximieren und dabei Gadgetgröße ändern

Verfasst: 23.04.2006 11:11
von Vermilion
Also, ich komm gleich auf den Punkt :) :

Wenn man So etwas hat wie zum Beispiel Windows Notepad, und man klickt dann im Fensterrahmen auf Maximieren, dann vergrößert sich, wenn Notepad in PureBasic geschrieben wäre, auch das Editorgadget, der Bereich, in dem schreibt. Wie mache ich das? Muss ich Gadgets am Fensterrahmen "anbinden", damit sie immer bis zum Fensterrand gehen?

Verfasst: 23.04.2006 11:20
von sakuL
Mit #PB_Event_SizeWindow kann man prüfen, ob sich die Fenstergröße geändert hat. Dann liest man mit WindowWidth() und WindowHeight() die neuen Größen aus und erstellt das EditorGadget noch mal.
Beispiel:

Code: Alles auswählen

OpenWindow(0,0,0,300,300,#PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered | #PB_Window_SizeGadget,"Fenster")
CreateGadgetList(WindowID(0))
EditorGadget(0,5,5,290,290)

Repeat
event=WaitWindowEvent()

If event=#PB_Event_SizeWindow
width=WindowWidth()
height=WindowHeight()
EditorGadget(0,5,5,width-10,height-10)
EndIf

Until event=#PB_Event_CloseWindow
End

Verfasst: 23.04.2006 11:35
von ts-soft
Fast richtig :wink:
ResizeGadget ist hierfür zuständig, nicht das Gadget ständig neu erstellen, das kann böse enden, ausserdem verschwindet ständig der Text :mrgreen:

Code: Alles auswählen

OpenWindow(0,0,0,300,300,#PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered | #PB_Window_SizeGadget,"Fenster")
CreateGadgetList(WindowID(0))
EditorGadget(0,5,5,290,290)

Repeat
event=WaitWindowEvent()

If event=#PB_Event_SizeWindow
  width=WindowWidth()
  height=WindowHeight()
  ResizeGadget(0, 5, 5, width-10, height-10) 
EndIf

Until event=#PB_Event_CloseWindow
End 

Danke

Verfasst: 23.04.2006 11:36
von Vermilion
Danke! Ist ja gar nicht so schwer... :D