Fensterrahmen zur Laufzeit entfernen/verstecken

Anfängerfragen zum Programmieren mit PureBasic.
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von es_91 »

Hi.

Wie kann ich ein schon erzeugtes und angezeigtes Fenster rahmenlos (borderless) machen, obwohl es vorher als SystemMenu/TitleBar geflagt wurde?

Dankend, es_91.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von RSBasic »

Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von es_91 »

Ich sollte einmal lernen, selbst und gleich beim RSBasic zu suchen. ;)

Vielen vielen Dank.

/EDIT: was macht denn das '&~' in Deinem code 'Fensterrahmen entfernen'? Und bei mir wird da immernoch ein dünner Rahmen im Windows-Titlebar-Stil angezeigt, es ist also nicht ganz borderless.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von RSBasic »

Das sind zwei Operatoren für "And Not". Siehe PB-Hilfe unter "Variablen, Typen und Operatoren". In der unteren Tabelle sind alle Operatoren aufgelistet. Sowohl für "&" als auch für "~".
Bezüglich des dünnen Rahmens: Schau ich gleich...
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von RSBasic »

Du hast recht. Ist mir nicht aufgefallen. Sorry, stattdessen dann so:

Code: Alles auswählen

SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE) &~ (#WS_DLGFRAME | #WS_BORDER))
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von es_91 »

Da werden bei mir immernoch bläuliche transparente Windows-7-Ränder angezeigt.

Einstweilen vielen vielen Dank, RSBasic. Wiedereinmal hast Du mir den Schlüssel zum Weiterkommen gegeben, auch wenn ich immer noch Ränder habe.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von RSBasic »

Kannst du einen Screenshot posten? Bei mir ist es nach der Änderung komplett rahmenlos.
Hast du in der Parameterliste deines Fensters andere Flags? Kannst du zusätzlich einen Beispielcode posten?
Danke im Voraus
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von RSBasic »

Benutzt du zufällig auch #PB_Window_SizeGadget? Wenn ja, dann musst du diese Eigenschaft ebenfalls entfernen und zwar so:

Code: Alles auswählen

SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE) &~ (#WS_DLGFRAME | #WS_BORDER | #WS_SIZEBOX))
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: Fensterrahmen zur Laufzeit entfernen/verstecken

Beitrag von es_91 »

Meine Bilder waren zu breit ...

Danke, RSBasic.
Ja, ich hatte den SizeGadget noch drin. Hätte ich mir denken können aber mein Hirn war nicht so clever. Vielen Dank an Dich!!!


Ich hatte bei dem blauen Rahmen auch das Problem, dass ich das Fenster nicht in den Vollbildmodus schicken konnte, weil das Fenster immer 2 Pixel kleiner war, als die Desktopgröße und damit der Rahmen sichtbar war. Jetzt geht alles. Suppi!!
Antworten