Seite 1 von 1

Panel Hintergrundfarbe

Verfasst: 19.05.2007 09:45
von dakotawolf
Hi,

kann ich einem Panel auch eine Farbe zuweisen? Danke...

Verfasst: 19.05.2007 16:50
von Recay
Soweit ich weiß ist das nicht direkt möglich, aber vllt kannst du ja über die handle die position das tabs ermitteln und dann da einfach nen ein brush hinzeichnen... ist aber nicht so richtig orginell...

Verfasst: 19.05.2007 22:30
von Kiffi
Hallo dakotawolf,

wenn Du Dich nicht scheust, eine UserLib dafür zu verwenden, dann
könntest Du das mit der PureCOLOR library von gnozal machen.

Code: Alles auswählen

OpenWindow(0, #PB_Ignore, #PB_Ignore, 300, 300, "")
CreateGadgetList(WindowID(0))
PanelGadget(0, 5, 5, 290, 290)
AddGadgetItem(0, -1, "Oanz") 
AddGadgetItem(0, -1, "Zwoa") 
AddGadgetItem(0, -1, "Gsuffa") 
CloseGadgetList()

PureCOLOR_SetGadgetColor(0, RGB(255,0,0), RGB(0,0,255)) 

Repeat
  
Until WaitWindowEvent()=#PB_Event_CloseWindow
Allerdings: So richtig schick sieht das nicht aus...

Bild

Grüße ... Kiffi

Verfasst: 20.05.2007 00:17
von Fluid Byte

Code: Alles auswählen

OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
PanelGadget(0,5,5,310,230)
AddGadgetItem(0,-1,"tab1")
ButtonGadget(1,10,10,100,25,"untitled1")
CheckBoxGadget(2,10,40,100,25,"untitled2")
CheckBoxGadget(3,10,70,100,25,"untitled3")
OptionGadget(4,10,100,100,25,"untitled4")
OptionGadget(5,10,130,100,25,"untitled5")
AddGadgetItem(0,-1,"tab2")
AddGadgetItem(0,-1,"tab3")

SetWindowLong_(GadgetID(0),#GWL_STYLE,#WS_CHILD | #WS_VISIBLE | #WS_CLIPCHILDREN)

Global hbrBackground = CreateSolidBrush_(#Red)

Procedure EnumWindows(hwnd,lParam)
	SetClassLong_(hwnd,#GCL_HBRBACKGROUND,hbrBackground)

	ProcedureReturn 1
EndProcedure

EnumChildWindows_(GadgetID(0),@EnumWindows(),0)

For i=2 To 5
	SetClassLong_(GadgetID(i),#GCL_HBRBACKGROUND,0)
Next

Procedure WindowCallback(hWnd.l,uMsg.l,wParam.l,lParam.l)
    Select uMsg
        Case #WM_CTLCOLORSTATIC
        SetBkMode_(wParam,#TRANSPARENT)
        
 		ProcedureReturn hbrBackground
    EndSelect
     
    ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

SetWindowCallback(@WindowCallback())

While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
Der Rand und die Tabs sind nur mittels Ownerdraw einzufärben. Außerdem funktioniert der Code nicht mit XP Skins.

Verfasst: 20.05.2007 13:15
von dakotawolf
Danke für Eure Mühe - da ich bislang nur mit der Demoversion gearbeitet habe, kann ich die 2 Beispiele noch nicht laufen lassen. Habe aber gestern die Vollversion bestellt, nachdem ich mich mit PB schon ganz gut angefreundet habe. Bis ich sie habe, werde ich all die mir unbekannten Funktionen mal studieren, die Ihr verwendet habt....uff.Danke und Gruß aus der Stadt mit dem 3. größten Kuppeldom Europas!

Verfasst: 20.05.2007 13:22
von dysti
@Fluid Byte: super, das habe ich gesucht.