Höhe der Titelleiste ändern
Höhe der Titelleiste ändern
Hallo,
wie kann ich bei normalen Fenstern unter Windows die Höhe der Titelleiste
ändern? Bestimmte Windows-Programme haben sozusagen 'Multiline'
Titelleisten. Wie kann man das machen?
wie kann ich bei normalen Fenstern unter Windows die Höhe der Titelleiste
ändern? Bestimmte Windows-Programme haben sozusagen 'Multiline'
Titelleisten. Wie kann man das machen?
Win11 x64 | PB 6.20
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
Re: Höhe der Titelleiste ändern
Noch nie gesehen.Andesdaf hat geschrieben:Hallo,
wie kann ich bei normalen Fenstern unter Windows die Höhe der Titelleiste
ändern? Bestimmte Windows-Programme haben sozusagen 'Multiline'
Titelleisten. Wie kann man das machen?
Koenntest du das mal anhand eines Screenshots zeigen, was du meinst?
Ansonsten faellt mir nur die Moeglichkeit ein, die Titelleiste selbst zu designen...
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Die Höhe der Titelleisten von Fenstern ist eine globale Systemeinstellung. Die lässt sich nicht ohne weiteres ändern. Du kannst nur unter "Anzeige/Darstellung" die Höhe manuell für alle einstellen. Wenn du das wirklich programmiertechnisch lösen willst kommst ums Selberzeichnen nicht rum.
Windows 10 Pro, 64-Bit / Outtakes | Derek
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
Stellt sich nur die Frage, wie das zu realisieren ist... Wie "imitiert" man so eine Move-Funktion (wenn man in die Titelleiste klickt und dann das Fenster verschiebt)? Minimieren und x-Knopf sind ja klar...Fluid Byte hat geschrieben:Die Höhe der Titelleisten von Fenstern ist eine globale Systemeinstellung. Die lässt sich nicht ohne weiteres ändern. Du kannst nur unter "Anzeige/Darstellung" die Höhe manuell für alle einstellen. Wenn du das wirklich programmiertechnisch lösen willst kommst ums Selberzeichnen nicht rum.
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
Also ich hab mich in das Thema "Selberzeichnen" mal etwas hineinversetzt und mir meinen eigenen "Style" programmiert.
Wollte jetzt dafuer keinen anderen extra Thread aufmachen, deswegen poste ich das mal hier. Hat ja im entfernteren Sinne auch noch was mit Andesdafs Problem zu tun.
Die Buttons sind natuerlich nur provisorisch schnell gezeichnet - das muss ich grafisch noch aufpeppen.
Also Minimieren klappt wunderbar. Und die Schliessen-Funktion auch (mit SendMessage() natuerlich).
Aber bei der Move-Funktion happerts. Hat jemand ne Idee wie ich das fluessiger machen koennte? Es funktioniert halt nicht so richtig wie bei den "normalen" Windows-Fenstern... Oder gibts vllt noch ne andere API-Loesung das zu realisieren... waere sehr dankbar fuer eure Hilfe...
Wollte jetzt dafuer keinen anderen extra Thread aufmachen, deswegen poste ich das mal hier. Hat ja im entfernteren Sinne auch noch was mit Andesdafs Problem zu tun.
Code: Alles auswählen
OpenWindow(0, 0, 0, 300, 200, "", #PB_Window_ScreenCentered | #PB_Window_BorderLess); | #PB_Window_BorderLess)
CreateGadgetList(WindowID(0))
Repeat
StartDrawing(WindowOutput(0))
blue = 30
For i = 0 To 30
blue + 4
Line(0, i, WindowWidth(0), 0, RGB(0, 0, blue))
Next
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(5, 5, "Mein eigenes Fenster", RGB(255, 255, 255))
Box(270, 5, 20, 20, RGB(0, 0, 250))
Line(272, 21, 16, -16, $FFFFFF)
Line(287, 21, -16, -16, $FFFFFF)
Box(220, 5, 20, 20, RGB(0, 0, 250))
Line(225, 15, 10, 0, $FFFFFF)
DrawingMode(#PB_2DDrawing_Outlined)
Box(220, 5, 20, 20, 0)
Box(270, 5, 20, 20, 0)
Box(0, 0, 300, 200, RGB(0, 0, 255))
Box(1, 1, 298, 198, RGB(0, 0, 255))
StopDrawing()
Repeat
EventID = WindowEvent()
Delay(1)
If EventID = #PB_Event_Repaint
Break
EndIf
Until GetAsyncKeyState_(#VK_LBUTTON) Or EventID = #True Or klick = 1
If EventID = #PB_Event_Repaint
Continue
EndIf
If GetAsyncKeyState_(#VK_LBUTTON) And WindowMouseX(0) >= 220 And WindowMouseX(0) <= 240 And WindowMouseY(0) >= 5 And WindowMouseY(0) <= 25
SetWindowState(0, #PB_Window_Minimize)
ElseIf GetAsyncKeyState_(#VK_LBUTTON) And WindowMouseX(0) > 270 And WindowMouseX(0) <= 290 And WindowMouseY(0) >= 5 And WindowMouseY(0) <= 25
SendMessage_(WindowID(0), #WM_CLOSE, 0, 0)
ElseIf GetAsyncKeyState_(#VK_LBUTTON) And WindowMouseY(0) < 40
If klick = 0
oldmousex = WindowMouseX(0)
oldmousey = WindowMouseY(0)
klick + 1
ElseIf klick = 1
If WindowMouseX(0) > oldmousex
ResizeWindow(0, WindowX(0)+(WindowMouseX(0)-oldmousex), WindowY(0), 300, 200)
oldmousex = WindowMouseX(0)
ElseIf WindowMouseX(0) < oldmousex
ResizeWindow(0, WindowX(0)-(oldmousex - WindowMouseX(0)), WindowY(0), 300, 200)
oldmousex = WindowMouseX(0)
EndIf
If WindowMouseY(0) > oldmousey
ResizeWindow(0, WindowX(0), WindowY(0)+ (WindowMouseY(0) - oldmousey), 300, 200)
oldmousey = WindowMouseY(0)
ElseIf WindowMouseY(0) < oldmousey
ResizeWindow(0, WindowX(0), WindowY(0)- (oldmousey - WindowMouseY(0)), 300, 200)
oldmousey = WindowMouseY(0)
EndIf
EndIf
Else
klick = 0
oldmousex = 0
oldmousey = 0
EndIf
Until EventID = #PB_Event_CloseWindow
Also Minimieren klappt wunderbar. Und die Schliessen-Funktion auch (mit SendMessage() natuerlich).
Aber bei der Move-Funktion happerts. Hat jemand ne Idee wie ich das fluessiger machen koennte? Es funktioniert halt nicht so richtig wie bei den "normalen" Windows-Fenstern... Oder gibts vllt noch ne andere API-Loesung das zu realisieren... waere sehr dankbar fuer eure Hilfe...
-
- Beiträge: 237
- Registriert: 17.10.2008 18:24
- Kontaktdaten:
Ja ich schaetze mal das das Aendern der Groesse der Titelleiste zumindest bei Vista moeglich ist. Kann man ja leicht ueberpruefen.
Aendere mal den Fensterstil fuer alle Programm auf XP-Style oder was weiss ich was es bei Vista gibt (hab kein Vista) und schau mal, ob sich der Stil veraendert hat. Wenn es immernoch dieses Vista-Style hat dann wurde selbst gezeichnet schaetz ich mal.
Aendere mal den Fensterstil fuer alle Programm auf XP-Style oder was weiss ich was es bei Vista gibt (hab kein Vista) und schau mal, ob sich der Stil veraendert hat. Wenn es immernoch dieses Vista-Style hat dann wurde selbst gezeichnet schaetz ich mal.
Ich kann in Vista leider nicht mehr auf XP Style zurückschalten...
dafür aber auf Windows 2000 (klassisch)-Stil. Und dort offenbart sich mir
folgendes:
Es gibt eine ganz normale Titelleiste, mit "Filmveröffentlichung" überschrieben
Darunter befindet sich eine Art Toolbar, die das Icon, den zurück-Pfeil und
noch einmal den Text "Filmveröffentlichung". Unterm Vista-Style wird das
wohl alles nur gleich transparent gemacht und sieht deshalb aus wie eine
zweizeilige Titelleiste. Unter dem klassischen Stil ist die Titelleiste normal
blau und die Toolbar hat die Farbe des Fensters, so ein grau.
[OT]
Schaltet euch mal unter Vista den klassischen Stil ein. Für mich, der Aero
gewöhnt ist, ist das Aussehen so schrecklich. *Schnell-wieder-umschalt*
[/OT]
dafür aber auf Windows 2000 (klassisch)-Stil. Und dort offenbart sich mir
folgendes:
Es gibt eine ganz normale Titelleiste, mit "Filmveröffentlichung" überschrieben
Darunter befindet sich eine Art Toolbar, die das Icon, den zurück-Pfeil und
noch einmal den Text "Filmveröffentlichung". Unterm Vista-Style wird das
wohl alles nur gleich transparent gemacht und sieht deshalb aus wie eine
zweizeilige Titelleiste. Unter dem klassischen Stil ist die Titelleiste normal
blau und die Toolbar hat die Farbe des Fensters, so ein grau.
[OT]
Schaltet euch mal unter Vista den klassischen Stil ein. Für mich, der Aero
gewöhnt ist, ist das Aussehen so schrecklich. *Schnell-wieder-umschalt*
[/OT]
Win11 x64 | PB 6.20