I think the problem is here, the color should be changed when the WM_DRAWITEM message is sent, however even when I click the Listview the message doesn't get sent.

VB Code:
  1. Select Case Msg
  2.     Case WM_COMMAND
  3.         If lParam = m_LBHwnd Then
  4.             LongInt2Int wParam, iHw, iLW
  5.             Select Case (iHw)
  6.             Case LBN_SELCANCEL
  7.                 lCurind = SendMessage(lParam, LB_GETCURSEL, 0, ByVal 0&)
  8.             Case LBN_DBLCLK
  9.             End Select
  10.         End If
  11.     Case WM_DRAWITEM
  12.         If List_DrawItem(lParam) = 0 Then
  13.             '\\ We have handled the painting, so dont pass on to
  14.             '\\ default window procedure.
  15.             SubclassParent = 0
  16.             Exit Function
  17.         End If
  18.     Case Else
  19.         SubclassParent = 0
  20. End Select