Fenster Gestalten
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
Fenster Gestalten
Wui
Hab ne kleine Frage ^^
Wie erstellt man Fenster die z.B. rund sind und nich so einen standart Rand wie die normalen Fenster haben????
bzw. gibt es ein Tool für soetwas???
Gruß ZIM
Hab ne kleine Frage ^^
Wie erstellt man Fenster die z.B. rund sind und nich so einen standart Rand wie die normalen Fenster haben????
bzw. gibt es ein Tool für soetwas???
Gruß ZIM
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Code: Alles auswählen
OpenWindow(1, 0, 0, 100, 100, "abgerundetes Fenster")
SetWindowRgn_(WindowID(1), CreateRoundRectRgn_(0, 0, 100, 100, 30, 30), 0)
Repeat: Until WindowEvent() = #PB_Event_CloseWindow
Musst halt aufpassen, dass Schließbutton noch sichtbar ist, daher ist es mit
TitleBar eher schlecht als recht..
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Re: Fenster Gestalten
Wuff !The_Dark_Zim-.- hat geschrieben:Wui
Sowas läuft wohl unter Skinning.Wie erstellt man Fenster die z.B. rund sind und nich so einen standart Rand wie die normalen Fenster haben?
Im Codearchiv gibts unter Windows(Fenster) die Rubrik FX. Vielleicht ist da was dabei.
Oder http://www.purebasic.fr/english/viewtopic.php?t=17502.
Ohne es selber testen zu wollen: es scheint mir so zu sein, daß man ein randloses und transparentes Fenster braucht, in das man dann alle üblichen Fenster-Elemente (Close, Minimize, Maximize, oä) selber zeichnen und abarbeiten muß.
ps: mehrfach-Fragezeichen wirken auf manche Meschen demotivierend

Zuletzt geändert von scholly am 16.04.2008 12:43, insgesamt 2-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
@c4s
hm
ganz nett, aber er erstellt erst ein Eckiges
welches erst rund wird wenn man das verschiebt,
bzw. der andere Rand bleibt stehen
Edit: Besser ??
Das kam weil ich das von scholly noch garnicht gesehen hatte!
hm
ganz nett, aber er erstellt erst ein Eckiges
welches erst rund wird wenn man das verschiebt,
bzw. der andere Rand bleibt stehen

Edit: Besser ??
Das kam weil ich das von scholly noch garnicht gesehen hatte!
Zuletzt geändert von The_Dark_Zim-.- am 16.04.2008 13:32, insgesamt 3-mal geändert.
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Code: Alles auswählen
; auf die schnelle per SkinWin aus der PBOSL gelöst
hWnd = OpenWindow(0, 100, 200, 300, 300, "rundes Fenster",#PB_Window_BorderLess|#PB_Window_ScreenCentered)
HideWindow(0, 1)
hBitmap = CreateImage(1,300,300)
StartDrawing(ImageOutput(1))
Circle(150, 150, 140, #Red)
Circle(150, 150, 138, RGB(244,244,244))
StopDrawing()
SkinWin( hWnd, hBitmap,0,0 )
CreateGadgetList(WindowID(0))
ButtonGadget(1,140,140,20,20,"X")
HideWindow(0, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 1
quit = #True
EndSelect
EndSelect
Until Quit = #True
CloseWindow(0)
End
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
liegt daran, dass ich vergessen hatte es zuerst zu "verstecken".The_Dark_Zim-.- hat geschrieben:hm
ganz nett, aber er erstellt erst ein Eckiges
welches erst rund wird wenn man das verschiebt,
bzw. der andere Rand bleibt stehen
Hier der richtige funktionsfähige Code:
Code: Alles auswählen
OpenWindow(1, 0, 0, 100, 100, "abgerundetes Fenster", #PB_Window_Invisible)
SetWindowRgn_(WindowID(1), CreateRoundRectRgn_(0, 0, 100, 100, 30, 30), 0)
HideWindow(1, #False)
Repeat: Until WindowEvent() = #PB_Event_CloseWindow
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Re: Fenster Gestalten
Also zwischen rund und abgerundet, wie c4s anbietet, ist schon ein Unterschied.The_Dark_Zim-.- hat geschrieben:Wie erstellt man Fenster die z.B. rund sind und nich so einen standart Rand wie die normalen Fenster haben?
Da mußt Du Dich schon entscheiden.
Hab ich in meiner Sammlung aber auch was für:
Code: Alles auswählen
;basiert auf hjbremer
;http://www.purebasic.fr/german/viewtopic.php?p=191981
hwnd = OpenWindow(0, 100, 200, 300, 300, "rundes Fenster",#PB_Window_BorderLess|#PB_Window_ScreenCentered)
HideWindow(0, 1)
hbitmap = CreateImage(1,300,300)
dc1 = StartDrawing(ImageOutput(1))
SelectObject_(dc1, GetStockObject_(#BLACK_PEN))
SelectObject_(dc1, GetStockObject_(#LTGRAY_BRUSH))
RoundRect_(dc1,10,10,280,280,25,25)
StopDrawing()
SkinWin( hWnd, hBitmap,0,0 )
CreateGadgetList(WindowID(0))
ButtonGadget(1,140,140,20,20,"X")
HideWindow(0, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 1
quit = #True
EndSelect
EndSelect
Until Quit = #True
CloseWindow(0)
End
Code: Alles auswählen
;basiert auf marco2006
;http://www.purebasic.fr/german/viewtopic.php?p=191981
hwnd = OpenWindow(0, 100, 200, 300, 300, "rundes Fenster",#PB_Window_BorderLess|#PB_Window_ScreenCentered)
HideWindow(0, 1)
hbitmap = CreateImage(1,300,300)
x = 10
y = 10
l =280
b =280
r = 10
If StartDrawing(ImageOutput(1))
Line(x+r, y, l-2*r, 0, RGB(5,5,5))
Line(x+r, y+b, l-2*r, 0, RGB(5,5,5))
Line(x, y+r, 0, b-2*r, RGB(5,5,5))
Line(x+l, y+r, 0, b-2*r, RGB(5,5,5))
For i=0 To 90
Plot((x+r)-r*Cos(i/180*#PI), (y+r)-r*Sin(i/180*#PI), RGB(5,5,5))
Plot((x+l-r)+r*Cos(i/180*#PI), (y+r)-r*Sin(i/180*#PI), RGB(5,5,5))
Plot((x+r)-r*Cos(i/180*#PI), (y+b-r)+r*Sin(i/180*#PI), RGB(5,5,5))
Plot((x+l-r)+r*Cos(i/180*#PI), (y+b-r)+r*Sin(i/180*#PI), RGB(5,5,5))
Next
FillArea(150, 150, RGB(5,5,5), RGB(155,155,155))
StopDrawing()
EndIf
SkinWin( hWnd, hBitmap,0,0 )
CreateGadgetList(WindowID(0))
ButtonGadget(1,140,140,20,20,"X")
HideWindow(0, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 1
quit = #True
EndSelect
EndSelect
Until Quit = #True
CloseWindow(0)
End
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
@ c4s
Das sieht doch gleich viel besser aus ^^
thx
@ scholly
Mein PB kann mit nix anfangen
Muss ich da noch was installieren????
Das mit dem Runden war nur ein Beispiel ^^ Wäre natürlich cool wenn man auch andere formen machen kann
Das sieht doch gleich viel besser aus ^^
thx
@ scholly
Mein PB kann mit
Code: Alles auswählen
SkinWin( hWnd, hBitmap,0,0 )
Muss ich da noch was installieren????
Das mit dem Runden war nur ein Beispiel ^^ Wäre natürlich cool wenn man auch andere formen machen kann

PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
PBOSLThe_Dark_Zim-.- hat geschrieben: Mein PB kann mitnix anfangenCode: Alles auswählen
SkinWin( hWnd, hBitmap,0,0 )
Muss ich da noch was installieren????
Wenn ich nachher zuhause bin, bastel ich Dir mal eben ein sternförmiges Fenster, aber das dauert noch was...Das mit dem Runden war nur ein Beispiel ^^ Wäre natürlich cool wenn man auch andere formen machen kann
Oder möchtest Du ein Ei (Ellipse) oder was anderes?
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)