Hallo, weiß jemand wie man eine Spalte von einem Listview färben kann ohne gleich das ganze Listview zu färben?
Vielen Dank im Voraus
RapIT
farbe von listviewspalte ändern
-
- [ gelöst ]
-
RapIt -
1. September 2010 um 20:57 -
Geschlossen -
Erledigt
-
-
Wenn du die Zeilen mit GuiCtrlCreateListViewItem erstellst kannst du mit GuiCtrlSetBkColor Färben.
Hier haste mal nen Beispiel
Spoiler anzeigen
[autoit]#include <GuiListView.au3>
[/autoit] [autoit][/autoit] [autoit]
GUICreate("", 633, 454, 192, 114)
$ListView1 = GUICtrlCreateListView("", 112, 96, 329, 241)
_GUICtrlListView_AddColumn($ListView1,"",200)
GUICtrlCreateListViewItem("Rot",$ListView1)
GUICtrlSetBkColor(-1,0xFF0000)GUICtrlCreateListViewItem("Grün",$ListView1)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetBkColor(-1,0x00FF00)GUICtrlCreateListViewItem("Blau",$ListView1)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetBkColor(-1,0x0000FF)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
ExitEndSwitch
[/autoit]
WEnd -
Hallo,
benutze die SuFu BugFix hat afaik einen Post dazu veröffentlicht (LV SubItems einzeln färben, oder so ähnlich)
mfg autoBert
-
- Offizieller Beitrag
Um NUR eine (mehrere) Spalten mit einer Farbe einzufärben kann man das stark schrumpfen:
Spoiler anzeigen
[autoit]#Include <GuiConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <GuiListView.au3>
#Include <ListViewConstants.au3>
#Include <StructureConstants.au3>
#Include <WindowsConstants.au3>$GUI = GUICreate("Listview Spalte färben", 400, 300)
[/autoit] [autoit][/autoit] [autoit]$cListView = GUICtrlCreateListView("", 2, 2, 394, 268)
[/autoit] [autoit][/autoit] [autoit]
$hListView = GUICtrlGetHandle($cListView)_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
_GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100)For $i = 1 To 30
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_AddItem($hListView, "Row" & $i & ": Col 1", $i-1)
For $j = 1 To 2
_GUICtrlListView_AddSubItem ($hListView, $i-1, "Row" & $i & ": Col " & $j+1, $j)
Next
NextGUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
[/autoit] [autoit][/autoit] [autoit]
GUISetState()Do
[/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSEFunc WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR$tNMHDR = DllStructCreate($tagNMHDR, $lParam)
[/autoit] [autoit][/autoit] [autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hListView
Switch $iCode
Case $NM_CUSTOMDRAW
If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG
Local $tCustDraw = DllStructCreate('hwnd hwndFrom;int idFrom;int code;' & _
'dword DrawStage;hwnd hdc;long rect[4];dword ItemSpec;int ItemState;dword Itemlparam;' & _
'dword clrText;dword clrTextBk;int SubItem;' & _
'dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartID;int StateID;long rectText[4];int Align', _
$lParam), $iDrawStage, $iItem, $iSubitem, $hDC, $iColor
$iDrawStage = DllStructGetData($tCustDraw, 'DrawStage')
If $iDrawStage = $CDDS_PREPAINT Or $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYITEMDRAW
If Not BitAND($iDrawStage, $CDDS_SUBITEM) Then Return $CDRF_DODEFAULT
$iSubitem = DllStructGetData($tCustDraw, 'SubItem')$iColor = RGB2BGR(0xFFFF00) ; Hintergrundfarbe für Spalte
[/autoit] [autoit][/autoit] [autoit]
$iColDefault = RGB2BGR(0xFFFFFF) ; Standardfarbe (weiß)
If $iSubitem = 1 Then ; Hier SubItem (Spalte) festlegen
DllStructSetData($tCustDraw, 'clrTextBk', $iColor)
Else
DllStructSetData($tCustDraw, 'clrTextBk', $iColDefault)
EndIf
Return $CDRF_NEWFONT
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFYFunc RGB2BGR($iColor)
[/autoit]
Return BitAND(BitShift(String(Binary($iColor)), 8), 0xFFFFFF)
EndFunc -
Vielen Dank