ich bekomme es nicht hin beim Header eines ListViewGadget
die Farbe zu ändern.
Ich habe einen WindowCallback in dem das passieren soll.
SetTextColor_(*LVCDHeader\nmcd\hdc, #Blue) ;<--- GEHT NICHT!!!
Vielleicht kann ja mal ein Profi drüber schauen.
Sollte eigentlich nur ne Kleinigkeit sein die da nicht passt

Hier der Code dazu:
Code: Alles auswählen
Global FontReg = LoadFont(0, "Arial", 8)
Global FontBold = LoadFont(1, "Arial", 8, #PB_Font_Bold)
Procedure NotifyCallback(WindowID, Message, wParam, lParam)
; Textfarbe, Hintergrund, Font bei ListView Zeilen und Spalten ändern
; process NOTIFY message only
If Message = #WM_NOTIFY
; set stucture pointer
*LVCDHeader.NMLVCUSTOMDRAW = lParam
; CUSTOMDRAW message from desired gadget?
If *LVCDHeader\nmcd\hdr\hWndFrom = GadgetID(200) And *LVCDHeader\nmcd\hdr\code = #NM_CUSTOMDRAW
Select *LVCDHeader\nmcd\dwDrawStage
Case #CDDS_PREPAINT
ProcedureReturn #CDRF_NOTIFYITEMDRAW
Case #CDDS_ITEMPREPAINT
Protected *NMCUSTOMDRAW.NMCUSTOMDRAW
SetTextColor_(*LVCDHeader\nmcd\hdc, #Blue) ;<--- GEHT NICHT!!!
SendMessage_(*LVCDHeader\nmcd\hdr\hwndFrom, #WM_SETFONT, FontBold, 1)
ProcedureReturn #CDRF_NOTIFYSUBITEMDRAW
Case #CDDS_SUBITEMPREPAINT
Row = *LVCDHeader\nmcd\dwItemSpec
Col = *LVCDHeader\iSubItem
If Row=0
SelectObject_(*LVCDHeader\nmcd\hDC, FontBold)
Else
SelectObject_(*LVCDHeader\nmcd\hDC, FontReg)
EndIf
If Row=1
*LVCDHeader\clrText = RGB(255, 255, 255)
*LVCDHeader\clrTextBk = RGB(0, 255, 0)
If Col=1
*LVCDHeader\clrText = RGB(250, 0, 0)
EndIf
Else
*LVCDHeader\clrTextBk = RGB(210, 210, 210)
If Col = 3
*LVCDHeader\clrText = RGB(0, 0, 255)
EndIf
EndIf
ProcedureReturn #CDRF_NEWFONT
EndSelect
EndIf
Else
ProcedureReturn #PB_ProcessPureBasicEvents
EndIf
EndProcedure
If OpenWindow(0, #PB_Ignore, #PB_Ignore, 400, 300, "Custom ListView Gadget",
#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
ListIconGadget(200, 10, 10, 380, 280, "Custom", 70, #PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
For a=1 To 5: AddGadgetColumn(200, a, "Spalte " + Str(a), 60): Next a
AddGadgetItem(200, -1, "Zeile 1" + Chr(#LF) + "1" + Chr(#LF) + "2"+ Chr(#LF) + "3" + Chr(#LF) + "4" + Chr(#LF) + "5")
AddGadgetItem(200, -1, "Zeile 2" + Chr(#LF) + "1" + Chr(#LF) + "2"+ Chr(#LF) + "3" + Chr(#LF) + "4" + Chr(#LF) + "5")
EndIf
SetWindowCallback(@NotifyCallback())
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End