Seite 1 von 2
Systemfarben nur für eigenes Programm ändern
Verfasst: 17.12.2005 17:40
von Delle
Das ändert die Hintergrundfarbe in Win98-grau,
dies soll aber nur bei meinem Programm passieren
und nicht für das komplette System...
Code: Alles auswählen
hWnd = OpenWindow(1,300,350,400,200,#PB_Window_SystemMenu,"Window")
a = #COLOR_BTNFACE : b = RGB(192,192,192)
RetVal = SetSysColors_(1, @a, @b)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow: End
EndSelect
ForEver
http://msdn.microsoft.com/library/en-us ... colors.asp
Verfasst: 17.12.2005 17:43
von ts-soft
Dann mußte die Hintergrundfarbe Deiner Fensters ändern, z.B. mit
PBOSL_SkinWin:
Verfasst: 17.12.2005 17:44
von Delle
Kenne ich, allerdings ist das ja auch nur eine Fake-Funktion
die mittels 2D die Farbe draufpinselt.
Wenn man ein Frame3DGadget draufsetzt, sieht man doch
wieder die Systemfarben durch...
Verfasst: 17.12.2005 18:20
von ts-soft

, ist kein Fake. Das andere Farben auch noch angepaßt werden müssen, ist klar. Entweder man Skint das Fenster richtig und ganz oder man läßt dem User seine eingestellten Farben.
Verfasst: 17.12.2005 18:34
von Delle
Nun gut, mit PUREColor kann man auch noch Einiges einfärben,
aber wie ändert man z.B. die Farbe vom Frame3DGadget?
Sprich ich will statt den grauen Linien blaue oder so haben...
Verfasst: 17.12.2005 18:44
von ts-soft
Delle hat geschrieben:Nun gut, mit PUREColor kann man auch noch Einiges einfärben,
aber wie ändert man z.B. die Farbe vom Frame3DGadget?
Sprich ich will statt den grauen Linien blaue oder so haben...
Mußte mal mit Fred sprechen, das Frame3DGadget ist nämlich kein Windows-Control, sondern nur ein gezeichnetes abgerundetes Rechteck. Oder erstell es Dir selbst, kannst auch die Zeichenfarbe bestimmen
Verfasst: 17.12.2005 19:13
von Hroudtwolf
Da scheinen 2 das gleiche Problem zu haben.
Deshalb poste ich den Code in diesem Thread noch einmal.
Code: Alles auswählen
; Colored Window
; 2005 Hroudtwolf
If OpenWindow(0, 0, 0, 500, 500, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Gefärbtes Fenster")
hBrush.l = CreateSolidBrush_(RGB(130,150,250))
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, hBrush.l)
InvalidateRect_(WindowID(0), #Null, #True)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
EndIf
DeleteObject_(hBrush.l)
End
Verfasst: 17.12.2005 21:09
von Danilo
ts-soft hat geschrieben:das Frame3DGadget ist nämlich kein Windows-Control,
Frame3D ohne Styleflag ist ein ButtonGadget mit #BS_GROUPBOX.
Mit Styleflag (Single, Flat,...) ist es nicht anders als ein Container.
Code: Alles auswählen
OpenWindow(0,0,0,200,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"test")
CreateGadgetList(WindowID())
ButtonGadget(0,5, 10,190,25,"Button 0")
ButtonGadget(1,5, 40,190,25,"Button 1",#BS_GROUPBOX)
ButtonGadget(2,5, 70,190,25,"Button 2",#BS_AUTOCHECKBOX)
ButtonGadget(3,5,100,190,25,"Button 3",#BS_AUTO3STATE)
ButtonGadget(4,5,130,190,25,"Button 4",#BS_AUTORADIOBUTTON)
ButtonGadget(5,5,160,190,36,"Button 5",#BS_ICON)
SendMessage_(GadgetID(5),#BM_SETIMAGE,#IMAGE_ICON,LoadIcon_(0,#IDI_ASTERISK))
ButtonGadget(6,5,200,190,50,"Button 6",#BS_BITMAP)
SendMessage_(GadgetID(6),#BM_SETIMAGE,#IMAGE_BITMAP,CreateImage(0,170,40))
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
Verfasst: 17.12.2005 21:13
von Delle
Hm aber einfärben kann man es trotzdem nicht oder?
Sonst würde es ja vermutlich auch schon längst PureColor-Befehle geben,
mit denen man die Ränder von Buttons einfärben könnte...
Verfasst: 17.12.2005 21:18
von ts-soft
@Danilo
Danke für die Info, das mit dem GroupBox-Style wußte ich nicht, obwohl
ich den Style vom lesen her kenne.