Maximieren und dabei Gadgetgröße ändern

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Maximieren und dabei Gadgetgröße ändern

Beitrag 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?
Benutzeravatar
sakuL
Beiträge: 11
Registriert: 14.07.2005 20:08
Wohnort: Celle

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 
Zuletzt geändert von ts-soft am 23.04.2006 11:38, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Danke

Beitrag von Vermilion »

Danke! Ist ja gar nicht so schwer... :D
Antworten