J'explique mon problème, via un callBack, je traite les couleurs des lignes d'un ListIconGadget....
Une couleur sur 2, gris clair, gris fonce etc... mais si je veux en plus une autre couleur de ligne en cas d'une variable spéciale, problème.
Si qqun a des suggestions...
Dans ce bout de code, j'aimerai en plus une couleur de ligne si la colonne F contient "OUI"
Code : Tout sélectionner
Global TEST1
Enumeration
#frm
#lst
EndEnumeration
Procedure WndProc(hwnd, uMsg, wParam, lParam)
result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_NOTIFY
*pnmh.NMHDR = lParam
Select *pnmh\code
Case #NM_CUSTOMDRAW
*LVCDHeader.NMLVCUSTOMDRAW = lParam
If *LVCDHeader\nmcd\hdr\hwndFrom = TEST1
Select *LVCDHeader\nmcd\dwDrawStage
Case #CDDS_PREPAINT
result = #CDRF_NOTIFYITEMDRAW
Case #CDDS_ITEMPREPAINT
result = #CDRF_NOTIFYSUBITEMDRAW
Case #CDDS_SUBITEMPREPAINT
Row = *LVCDHeader\nmcd\dwItemSpec
Col = *LVCDHeader\iSubItem
If Row & 1 = 0
*LVCDHeader\clrTextBk = RGB(240,240,240)
Else
*LVCDHeader\clrTextBk = RGB(210,210,210)
EndIf
result = #CDRF_NEWFONT
EndSelect
EndIf
EndSelect
EndSelect
ProcedureReturn result
EndProcedure
Procedure frm_Open()
Protected Width.l, Height.l, x.l
Protected tmp.s
Width = 400
Height = 400
OpenWindow(#Frm,0,0, width, height, "", #PB_Window_SystemMenu| #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
TEST1 = ListIconGadget(#lst, 10, 30, 380, 350, "ID", 0,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect | #PB_ListIcon_HeaderDragDrop|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_MultiSelect)
AddGadgetColumn(#lst, 1, "A",50)
AddGadgetColumn(#lst, 2, "B",50)
AddGadgetColumn(#lst, 3, "C",50)
AddGadgetColumn(#lst, 4, "D",50)
AddGadgetColumn(#lst, 5, "E",50)
AddGadgetColumn(#lst, 6, "F",50)
tmp = "" + #LF$
tmp + "un" + #LF$
tmp + "deux" + #LF$
tmp + "trois" + #LF$
tmp + "quatre" + #LF$
tmp + "cinq" + #LF$
tmp + "NON" + #LF$
For x = 1 To 5
AddGadgetItem(#lst,-1,tmp,0)
Next x
tmp = "" + #LF$
tmp + "un" + #LF$
tmp + "deux" + #LF$
tmp + "trois" + #LF$
tmp + "quatre" + #LF$
tmp + "cinq" + #LF$
tmp + "OUI" + #LF$
AddGadgetItem(#lst,-1,tmp,0)
SetWindowCallback(@WndProc())
EndProcedure
Procedure frm_Event()
Protected glEvent.l, glGadget.l, glType.l, glWindow.l
Repeat
glEvent = WaitWindowEvent()
glGadget = EventGadget()
glType = EventType()
glWindow = EventWindow()
glMenu = EventMenu()
ForEver
End
EndProcedure
frm_Open()
frm_Event()