Naja, Win7 tauglich ist das nicht
Fenster ändern Normal <-> Borderless
- 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
Re: Fenster ändern Normal <-> Borderless
1 x NoBorder macht er, danach ist das Fenster im Hintergrund bzw. minimiert und reagiert auf nichts mehr.
Naja, Win7 tauglich ist das nicht
Naja, Win7 tauglich ist das nicht
Re: Fenster ändern Normal <-> Borderless
will ich so generell nicht im Raum stehen lassen.ts-soft hat geschrieben:Naja, Win7 tauglich ist das nicht
scheint dann wohl eher eine 64Bit Kiste zu sein.TomS hat geschrieben:@ts-soft: Also Kiffi's Code funzt bei mir gut. Win XP Pro SP3 32bit mit Win7-Aero-Skin
Grüße ... Kiffi
a²+b²=mc²
- 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
Re: Fenster ändern Normal <-> Borderless
Ähh?Kiffi hat geschrieben:will ich so generell nicht im Raum stehen lassen.ts-soft hat geschrieben:Naja, Win7 tauglich ist das nicht
scheint dann wohl eher eine 64Bit Kiste zu sein.TomS hat geschrieben:@ts-soft: Also Kiffi's Code funzt bei mir gut. Win XP Pro SP3 32bit mit Win7-Aero-Skin
Grüße ... Kiffi
TomS schreibt von WinXP Pro, egal welchen Skin er dort nutzt, es ist kein Windows 7 deswegen.
Ich nutze zwar Win7 64-Bit, habs aber unter x86 kompiliert, schon alleine deswegen, weil ich keine Ptr_
reinbauen wollte!
Bei mir gehts also nicht, Ultramon hatte ich aus.
Gruß
Thomas
Re: Fenster ändern Normal <-> Borderless
mea culpa!ts-soft hat geschrieben:Ähh?
Dachte, er hätte es unter XP und unter Win7 getestet.
Dass er XP mit Win7-Skin schrieb, habe ich überlesen.
Grüße ... Kiffi
a²+b²=mc²
- 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
Re: Fenster ändern Normal <-> Borderless
War mir klarKiffi hat geschrieben:Dass er XP mit Win7-Skin schrieb, habe ich überlesen.
Hab Kiffis Code mal angepaßt, läuft bei mir Fehlerfrei (XP, 7, x86 und x64)
Code: Alles auswählen
EnableExplicit
Define.i NoBorder, Border, WWE
Procedure WindowBorder(Window, Flag)
SetWindowLongPtr_(WindowID(Window), #GWL_STYLE, Flag)
SetWindowPos_(WindowID(Window), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
EndProcedure
#Window=0
#Button_Border=0
#Button_NoBorder=1
OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 220, "", #PB_Window_BorderLess)
NoBorder.i = GetWindowLongPtr_(WindowID(#Window), #GWL_STYLE)
OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 220, "")
Border.i = GetWindowLongPtr_(WindowID(#Window), #GWL_STYLE)
ButtonGadget(#Button_Border, 5, 5, 290, 100, "Border")
ButtonGadget(#Button_NoBorder, 5, 110, 290, 100, "No Border")
Repeat
WWE=WaitWindowEvent()
Select WWE
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_Border
WindowBorder(#Window, Border)
Case #Button_NoBorder
WindowBorder(#Window, NoBorder)
EndSelect
EndSelect
Until WWE = #PB_Event_CloseWindow Thomas
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: Fenster ändern Normal <-> Borderless
danke euch für die mannigfaltigen Anregungen!
hm... drei Flags hintereinander umgeschaltet...
würde das nicht auch mit einem Aufruf undfunktionieren?
... rhetorische Frage ... ich werds ausprobieren.
ein bissel fishy aber geile Idee!
... womit auch geklärt wäre, dass man wirklich nur am Style schrauben muss, nicht am ExtendedStyle.
PS: @ts
funktioniert denn die o.a. Version von Kiffi auch bei dir "korrekt"?
ah... die drei sind also des Pudels Kern...Kiffi hat geschrieben:Code: Alles auswählen
SetWindowLong_(WindowID(Window), #GWL_STYLE, GetWindowLong_(WindowID(Window), #GWL_STYLE) &~ #WS_DLGFRAME) SetWindowLong_(WindowID(Window), #GWL_STYLE, GetWindowLong_(WindowID(Window), #GWL_STYLE) &~ #WS_OVERLAPPED ) SetWindowLong_(WindowID(Window), #GWL_STYLE, GetWindowLong_(WindowID(Window), #GWL_STYLE) &~ #WS_BORDER)
hm... drei Flags hintereinander umgeschaltet...
würde das nicht auch mit einem Aufruf und
Code: Alles auswählen
... &~ ( #WS_DLGFRAME | #WS_OVERLAPPED | #WS_BORDER )... rhetorische Frage ... ich werds ausprobieren.
tricky tricky tricky!ts-soft hat geschrieben:Code: Alles auswählen
OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 220, "", #PB_Window_BorderLess) NoBorder.i = GetWindowLongPtr_(WindowID(#Window), #GWL_STYLE) OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 220, "") Border.i = GetWindowLongPtr_(WindowID(#Window), #GWL_STYLE)
ein bissel fishy aber geile Idee!
... womit auch geklärt wäre, dass man wirklich nur am Style schrauben muss, nicht am ExtendedStyle.
PS: @ts
funktioniert denn die o.a. Version von Kiffi auch bei dir "korrekt"?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: Fenster ändern Normal <-> Borderless
hm... beide Methoden sind anscheinend nicht dasselbe....
das ist XPx86...
schade eigentlich.
jetzt frage ich mich, ob die Methode mit #WS_DLGFRAME | #WS_OVERLAPPED | #WS_BORDER sicher genug ist,
oder ob ich es vorziehen soll, die StyleFlags vorab zu ermitteln wie von ts demonstriert...
Code: Alles auswählen
checkflag = #WS_DLGFRAME | #WS_OVERLAPPED | #WS_BORDER
OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 220, "", #PB_Window_BorderLess)
NoBorder.i = GetWindowLongPtr_(WindowID(#Window), #GWL_STYLE)
OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 220, "")
Border.i = GetWindowLongPtr_(WindowID(#Window), #GWL_STYLE)
Debug RSet( Bin( NoBorder , #PB_Long ), 32, "0" ) + " NoBorder"
Debug RSet( Bin( Border & ~ checkflag , #PB_Long ), 32, "0" ) + " Border And Not Flag"
Debug RSet( Bin( Border , #PB_Long ), 32, "0" ) + " Border"
Debug RSet( Bin( NoBorder | checkflag , #PB_Long ), 32, "0" ) + " NoBorder Or Flag"Code: Alles auswählen
10010100000000000000000000000000 NoBorder
00010100000010000000000000000000 Border And Not Flag
00010100110010000000000000000000 Border
10010100110000000000000000000000 NoBorder Or Flag schade eigentlich.
jetzt frage ich mich, ob die Methode mit #WS_DLGFRAME | #WS_OVERLAPPED | #WS_BORDER sicher genug ist,
oder ob ich es vorziehen soll, die StyleFlags vorab zu ermitteln wie von ts demonstriert...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- 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
Re: Fenster ändern Normal <-> Borderless
Was fragste Dich noch, die Methode kann nicht sicher genug sein, da sie garnicht funktioniert.Kaeru Gaman hat geschrieben: jetzt frage ich mich, ob die Methode mit #WS_DLGFRAME | #WS_OVERLAPPED | #WS_BORDER sicher genug ist,
oder ob ich es vorziehen soll, die StyleFlags vorab zu ermitteln wie von ts demonstriert...
Meine Methode ist die einzig funktionierende, alles andere funktioniert nur teilweise. Unter anderem
weil mit Sicherheit die Flags (#WS_DLGFRAME? PB erstellt nur Windows, keine Dialoge usw.) falsch,
bzw. unzureichend sind.
Gruß
Thomas
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: Fenster ändern Normal <-> Borderless
ts-soft hat geschrieben:Was fragste Dich noch, die Methode kann nicht sicher genug sein, da sie garnicht funktioniert.
wenn du mir mit richtigen Aussagen kämest wie "bei mir auf Windows 7 ist diese und jene Funktionalität nicht gegeben",
dann könnte ich ja noch etwas damit anfangen, aber auf diese Art und Weise?
von hier aus kann ich nicht einschätzen, was genau bei dir nicht funktioniert oder bei dir anders ist.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- 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
Re: Fenster ändern Normal <-> Borderless
Einmal click auf no Border funktioniert, danach nimmt das Fenster keinen click mehr an.
Es kann nur in den Vordergrund geholt werden, aber weder was geklickt noch geschlossen werden.
Es ist nur ein Wrack.
Reicht diese Beschreibung?
Weitere werden zwar nicht kommen, da ich es müde bin den Taskmanager zu bemühen,
das Fenster abzuschiessen und desweiteren möchte ich Ultramon auch nicht laufend deaktivieren.
Es kann nur in den Vordergrund geholt werden, aber weder was geklickt noch geschlossen werden.
Es ist nur ein Wrack.
Reicht diese Beschreibung?
Weitere werden zwar nicht kommen, da ich es müde bin den Taskmanager zu bemühen,
das Fenster abzuschiessen und desweiteren möchte ich Ultramon auch nicht laufend deaktivieren.