listctrl(Report View),该怎么解决

listctrl(Report View)
listctrl的report模式下选中行失焦时颜色是灰色,我想改变这个灰色,如何实现?
或者说失焦时也保持高亮。
我在OnKillfocusList中加m_List.SetHotItem(m_pos);不行~
怎么才行呢?

------解决方案--------------------
需要自绘了,codeproject上很多例子
------解决方案--------------------
void CSkinListCtrl::OnCustomDrawList ( NMHDR* pNMHDR, LRESULT* pResult )
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast <NMLVCUSTOMDRAW*> ( pNMHDR );
static bool bHighlighted = false;

*pResult = CDRF_DODEFAULT;

if ( CDDS_PREPAINT == pLVCD-> nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if ( CDDS_ITEMPREPAINT == pLVCD-> nmcd.dwDrawStage )
{
int iRow = (int)pLVCD-> nmcd.dwItemSpec;

bHighlighted = IsRowHighlighted(m_hWnd, iRow);
if (bHighlighted)
{
pLVCD-> clrText = g_MyClrFgHi; // Use my foreground hilite color
pLVCD-> clrTextBk = g_MyClrBgHi; // Use my background hilite color

EnableHighlighting(m_hWnd, iRow, false);
}

*pResult = CDRF_DODEFAULT | CDRF_NOTIFYPOSTPAINT;

}
else if(CDDS_ITEMPOSTPAINT == pLVCD-> nmcd.dwDrawStage)
{
if (bHighlighted)
{
int iRow = (int)pLVCD-> nmcd.dwItemSpec;

EnableHighlighting(m_hWnd, iRow, true);
}

*pResult = CDRF_DODEFAULT;

}
}
void CSkinListCtrl::EnableHighlighting(HWND hWnd, int row, bool bHighlight)
{
ListView_SetItemState(hWnd, row, bHighlight? 0xff: 0, LVIS_SELECTED);
}
------解决方案--------------------
bool CSkinListCtrl::IsRowHighlighted(HWND hWnd, int row)
{
return IsRowSelected(hWnd, row) /*&& (::GetFocus() == hWnd)*/;
}
m_hWnd是CWnd的成员,在列表框生成的时候初始化.