Maybe this ?
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListBox.au3>
; ListBox OwnerDrawn Colors
Global Const $tagDRAWITEMSTRUCT = "uint CtlType;uint CtlID;uint itemID;uint itemAction;uint itemState;hwnd hwndItem;handle hDC;dword rcItem[4];ptr itemData"
Global Const $ODA_DRAWENTIRE = 1
Global Const $ROW_HEIGHT = 24, $MARGIN = 4
Example()
Func Example()
GUICreate("Ownerdrawn Listbox", 300, 300)
Local $idListBox = GUICtrlCreateList("", 4, 4, 292, 292, $WS_VSCROLL + $LBS_OWNERDRAWFIXED)
_GUICtrlListBox_SetItemHeight($idListBox, $ROW_HEIGHT)
For $i = 0 To 19
_GUICtrlListBox_AddString($idListBox, "")
Next
GUIRegisterMsg($WM_DRAWITEM, WM_DRAWITEM)
GUISetState()
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>Example
Func WM_DRAWITEM($hWnd, $iMsg, $wParam, $lParam)
Local $tDRAWITEMSTRUCT = DllStructCreate($tagDRAWITEMSTRUCT, $lParam)
Switch $tDRAWITEMSTRUCT.itemAction
Case $ODA_DRAWENTIRE
Local $tRECT = DllStructCreate($tagRECT, DllStructGetPtr($tDRAWITEMSTRUCT, "rcItem"))
Local $hBrush = _WinAPI_CreateSolidBrush(Mod($tDRAWITEMSTRUCT.itemID, 2) ? 0xFFFFFF : 0xE0E0E0)
_WinAPI_FillRect($tDRAWITEMSTRUCT.hDC, $tRECT, $hBrush)
Local $sItemText = "Line " & $tDRAWITEMSTRUCT.itemID
$tRECT.Left += $MARGIN
$tRECT.Top += $MARGIN
_WinAPI_DrawText($tDRAWITEMSTRUCT.hDC, $sItemText, $tRECT, $DT_LEFT)
_WinAPI_DeleteObject($hBrush)
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_DRAWITEM