Seite 1 von 1
Programmwindow ohne Rahmen verschieben
Verfasst: 20.01.2015 17:01
von funkheld
Hallo, guten Tag.
Wie kann man bitte in Purebasic ein Programmwindows ohne Rahmen mit der Maus verschieben?
Code: Alles auswählen
OpenWindow(#PB_Any, 0, 0, 800, 600, "WindowTitle", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
ContainerGadget(#PB_Any, 10, 10, 400, 400, #PB_Container_Raised)
InitKeyboard()
Repeat
Event = WaitWindowEvent()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Danke.
Gruss
Re: Programmwindow ohne Rahmen.
Verfasst: 20.01.2015 17:20
von Kiffi
hier im Board gibt's eine Menge an Informationen zu diesem Thema. Such mal nach 'HTCAPTION'
Re: Programmwindow ohne Rahmen verschieben
Verfasst: 20.01.2015 17:34
von Vera
Hallo funkheld,
Auf Linux lassen sich Fenster, auch Borderless, mit ALT+liMausklick jederzeit verschieben.
Von den verschieden Möglichkeiten es einzurichten, finde ich die Methode von
SkyManager in
[Solved] Moving gadget gut, da er auch crossplatform ist. (s. letzten Code)
Es lohnt sich den ganzen Thread genauer durchzugehen, da dort auch andere Methoden dabei sind.
Gruß ~ Vera
Re: Programmwindow ohne Rahmen verschieben
Verfasst: 20.01.2015 17:52
von funkheld
Jup, so kann ich es jetzt verschieben.
Gibt es eine Möglichkeit, nach dem verkleinern den Rahmen durch einen Tastendruck unsichtbar/sichtbar zu machen?
Oder das Fenster auch ohne Rahmen vergrößern/verkleinern?
Code: Alles auswählen
OpenWindow(0, 0, 0, 320,200, "WindowTitle", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
ContainerGadget(1, 0,0,320,200, #PB_Container_Raised)
InitKeyboard()
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(0),#WM_NCLBUTTONDOWN, #HTCAPTION,0)
EndSelect
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Re: Programmwindow ohne Rahmen verschieben
Verfasst: 20.01.2015 19:44
von RSBasic
Wenn du einen Container erstellst, dann vergiss bitte nicht, diesen auch zu schließen (CloseGadgetList()), wenn du ihn nicht mehr mit Gadgets befüllen möchtest. Sonst hast du später Probleme, wenn du außerdem deines Containers andere Gadgets hinzufügen möchtest.
Ohne Fensterrahmen vergrößern bzw. verkleinern zu können, ist so nicht möglich. Die komplette Abfrage- und Vergrößerungs-/Verkleinerungsfunktion musst du selber schreiben. D.h. im Callback auf Mauscursorposition abfragen, Mauscursor setzen und die Größe verändern.
Alternativ kannst du dein Fenster auch mit Rahmen und ohne Titelleiste erstellen:
http://www.rsbasic.de/aktualisierung/wi ... SizeBox.pb
Das wäre die einfachste Lösung ohne Zusatzaufwand.