Hässliche Buttons
Hässliche Buttons
Hallo,
ich finde die grauen, eckigen Buttons von Windows einfach nur HÄSSLICH.
Da ich sonst keine Möglichkeit gefunden habe, habe ich mir selbst "PNG-Grafik-Buttons" mit transparentem Hintergrund gemacht und diese als "ImageGadGet" eingebaut.
Der Haken der Sache ist allerdings der, dass ich die Beschriftungen der Buttons mit in die Grafik eingebaut habe weil ich irgendwie keine Möglichkeit fand die Beschriftung über den grafischen Button zu legen und diesen trotzdem vollflächig anklickbar zu halten.
Das bedeutet jetzt aber, dass ich jeden Button in jeder Sprache (Deutsch, Englisch, Französisch, Spanisch, Portugiesich, Slowakisch und Polnisch) als Grafik erzeugen muß.
Gibt es da eine andere Lösung?
Gruß
Holger
ich finde die grauen, eckigen Buttons von Windows einfach nur HÄSSLICH.
Da ich sonst keine Möglichkeit gefunden habe, habe ich mir selbst "PNG-Grafik-Buttons" mit transparentem Hintergrund gemacht und diese als "ImageGadGet" eingebaut.
Der Haken der Sache ist allerdings der, dass ich die Beschriftungen der Buttons mit in die Grafik eingebaut habe weil ich irgendwie keine Möglichkeit fand die Beschriftung über den grafischen Button zu legen und diesen trotzdem vollflächig anklickbar zu halten.
Das bedeutet jetzt aber, dass ich jeden Button in jeder Sprache (Deutsch, Englisch, Französisch, Spanisch, Portugiesich, Slowakisch und Polnisch) als Grafik erzeugen muß.
Gibt es da eine andere Lösung?
Gruß
Holger
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Hässliche Buttons
Beim einlesen der Graphiken den landesspezifischen Text per Drawtext aufpinseln scheidet aus ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
Re: Hässliche Buttons
Nur Anwendungen die nichts können, werben mit Disigneroberflächen und drängen den Kunden ihre eigenen Skins auf 
Bitte denke immer an: Funktionalität und Barrierefreiheit.
Zu deiner eigentlichen Frage:
Einfach bei jedem Repaint des Windows per WindowOutput die Beschriftungen auf die ImageButtonGadgets legen.

Bitte denke immer an: Funktionalität und Barrierefreiheit.
Zu deiner eigentlichen Frage:
Einfach bei jedem Repaint des Windows per WindowOutput die Beschriftungen auf die ImageButtonGadgets legen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Hässliche Buttons
¡Gute Idee!
Werde ich mal testen...
¡Danke!
Werde ich mal testen...
¡Danke!
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Hässliche Buttons
Versuch es mal so, nen Bild dazu packen duerfte nicht schwer sein
Code: Alles auswählen
Procedure WindowCallback(hWnd,msg,wParam,lParam)
Protected old.i
Protected *item.DRAWITEMSTRUCT
Protected point.POINT , oldpoint.POINT
old = GetProp_(hWnd,"PROP_OLDPROC")
Select msg
Case #WM_DRAWITEM
*item = lParam
DC = *item\hdc
w = *item\rcItem\right - *item\rcItem\left
h = *item\rcItem\bottom - *item\rcItem\top
MapWindowPoints_(GetParent_(hWnd),hWnd,@point,1)
BackBrush = GetClassLong_(hWnd, #GCL_HBRBACKGROUND)
SetBrushOrgEx_(DC,point\x,point\y,@oldpoint)
FillRect_(DC,*item\rcItem,BackBrush)
SetBrushOrgEx_(DC,oldpoint\x,oldpoint\y,0)
color = GetWindowLong_(GadgetID(*item\CtlID),#GWL_USERDATA)
If *item\itemState & #ODS_SELECTED
hbrush = CreateSolidBrush_(color)
*item\rcItem\bottom + 2
Else
hbrush = CreateSolidBrush_(color)
EndIf
SelectObject_(DC,hbrush)
Ellipse_(DC,0,0,w,h)
DeleteObject_(hbrush)
SetBkMode_(DC,#TRANSPARENT)
DrawText_(DC, GetGadgetText(*item\CtlID), Len(GetGadgetText(*item\CtlID)), *item\rcItem, #DT_CENTER | #DT_SINGLELINE | #DT_VCENTER | #DT_NOCLIP)
ProcedureReturn #True
Case #WM_DESTROY
RemoveProp_(hWnd,"PROP_OLDPROC")
EndSelect
ProcedureReturn CallWindowProc_(old,hWnd,msg,wParam,lParam)
EndProcedure
Procedure RoundButton(id,x,y,cx,cy,text.s,color,flags=0)
Protected temp.i
Static old.i
temp = ButtonGadget(id,x,y,cx,cy,text,flags|#BS_OWNERDRAW)
If id = #PB_Any
hWnd = GadgetID(temp)
Else
hWnd = temp
EndIf
If old = 0
old = SetWindowLong_(GetParent_(hWnd),#GWL_WNDPROC,@WindowCallback())
SetProp_(GetParent_(hWnd),"PROP_OLDPROC",old)
EndIf
SetWindowLong_(hWnd,#GWL_USERDATA,color)
ProcedureReturn temp
EndProcedure
OpenWindow(#PB_Any,0,0,200,200,"",$C80001)
rb0 = RoundButton(#PB_Any,10,10,50,50,"blub",$FF0000) : DisableGadget(rb0,1)
rb1 = RoundButton(#PB_Any,60,60,50,50,"blub",$0080FF)
rb2 = RoundButton(#PB_Any,10,90,50,50,"blub",$C080FF)
Repeat
e = WaitWindowEvent()
If e = #PB_Event_Gadget
Select EventGadget()
Case rb0 : Debug "Press rb0"
Case rb1 : Debug "Press rb1"
Case rb2 : Debug "Press rb2"
EndSelect
ElseIf e = #PB_Event_CloseWindow
Break
EndIf
ForEver
End
Re: Hässliche Buttons
@Stargate
Auch eine Möglichkeit.
Mal sehen was besser geht.
Was die Bemerkung mit den "Anwendungen die nichts können" und den "eigenen Skins" betrifft, so impliziert diese Aussage im Umkehrschluss, dass alles was nicht mit der von "Gates-Gnaden" definierten Optik daherkommt automatisch eine schlechte Anwendung ist.
Ich denke nicht, dass das dein Ernst ist. Oder ?
Gruß
Holger
PS. Ich hätte gerne noch ein Bild der Optik mit eingebaut aber ich habe noch nicht herausgefunden wie das so geht, das es auch direkt im Beitrag angezeigt wird.
Auch eine Möglichkeit.
Mal sehen was besser geht.
Was die Bemerkung mit den "Anwendungen die nichts können" und den "eigenen Skins" betrifft, so impliziert diese Aussage im Umkehrschluss, dass alles was nicht mit der von "Gates-Gnaden" definierten Optik daherkommt automatisch eine schlechte Anwendung ist.
Ich denke nicht, dass das dein Ernst ist. Oder ?
Gruß
Holger
PS. Ich hätte gerne noch ein Bild der Optik mit eingebaut aber ich habe noch nicht herausgefunden wie das so geht, das es auch direkt im Beitrag angezeigt wird.
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Hässliche Buttons
Doch ist es.
Denn warum sollte eine Anwendung, bei der nahezu alles optimiert ist, sich mit Zeitintensieven "spezialeffekten" quählen um Polygonartige Buttons zu erzeugen.
Es geht nicht darum immer die Windos-Buttons zu sehen, sondern darum dem Kunden zu überlassen wie er das Programm sehen will (vom Skin her). Und wenn meine Oberfläche dunkel gehalten ist, will ich einfach kein hellweißes Fenster mit grünen Buttons -.-
Aber ist eigentlich auch egal, ist vermutlich nur n eigenart von mir, alle abzulehnen, was anders aussieht als "Basic".
Ja es gibt "vermutlich" auch außnahmen, nur selber gefunden habe ich sie noch nicht ...
Denn warum sollte eine Anwendung, bei der nahezu alles optimiert ist, sich mit Zeitintensieven "spezialeffekten" quählen um Polygonartige Buttons zu erzeugen.
Es geht nicht darum immer die Windos-Buttons zu sehen, sondern darum dem Kunden zu überlassen wie er das Programm sehen will (vom Skin her). Und wenn meine Oberfläche dunkel gehalten ist, will ich einfach kein hellweißes Fenster mit grünen Buttons -.-
Aber ist eigentlich auch egal, ist vermutlich nur n eigenart von mir, alle abzulehnen, was anders aussieht als "Basic".
Ja es gibt "vermutlich" auch außnahmen, nur selber gefunden habe ich sie noch nicht ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Hässliche Buttons
@Stargate
Na ja, jedem das seine....
Bei meiner Anwendung kann der Anwender die Farben frei festlegen.
(Das war damals auch der Grund für die Geschichte mit der ComboBox)
Gruß
Holger
Na ja, jedem das seine....
Bei meiner Anwendung kann der Anwender die Farben frei festlegen.
(Das war damals auch der Grund für die Geschichte mit der ComboBox)
Gruß
Holger
Wir sind LINUX
Widerstand ist zwecklos - Sie werden emuliert
Widerstand ist zwecklos - Sie werden emuliert
Re: Hässliche Buttons
ich denke es kommt immer auf die anwendung an. ich selber bevorzuge auch eher einen standard, aber gewissen programmen wie spielen, winamp oder dergleichen, da würde ich sagen, dass ein eigener style ok ist.
Re: Hässliche Buttons
Was ist mit "XP-Skin Unterstützung einschalten"?
Meine Buttons sind nicht grau, sondern sehen genauso so aus, wie ich es mit meinem selbst ausgesuchten Skin eingestellt habe und haben möchte.
Meine Buttons sind nicht grau, sondern sehen genauso so aus, wie ich es mit meinem selbst ausgesuchten Skin eingestellt habe und haben möchte.
"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