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.