Panel Hintergrundfarbe

Anfängerfragen zum Programmieren mit PureBasic.
dakotawolf
Beiträge: 7
Registriert: 13.05.2007 11:33
Wohnort: beim größten Kuppeldom in D

Panel Hintergrundfarbe

Beitrag von dakotawolf »

Hi,

kann ich einem Panel auch eine Farbe zuweisen? Danke...
Carpe Diem
Benutzeravatar
Recay
Beiträge: 5
Registriert: 23.04.2007 21:49

Beitrag 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...
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag 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.
Windows 10 Pro, 64-Bit / Outtakes | Derek
dakotawolf
Beiträge: 7
Registriert: 13.05.2007 11:33
Wohnort: beim größten Kuppeldom in D

Beitrag 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!
Carpe Diem
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

@Fluid Byte: super, das habe ich gesucht.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Antworten