1. 在.H文件中定义 

protected:

void OnDrawColorForMyList( NMHDR* pNmHdr, LRESULT *pResult );

2.在.CPP中加入消息映射

ON_NOTIFY( NM_CUSTOMDRAW, IDC_LIST, OnDrawColorForMyList ) //为改变颜色添加的消息

3.在.CPP中加入函数定义

//改变 m_List 控件单行的颜色

void CMyService::OnDrawColorForMyList( NMHDR *pNmHdr, LRESULT *pResult )

{

NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNmHdr );

    *pResult = CDRF_DODEFAULT;

if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )

{

        *pResult = CDRF_NOTIFYITEMDRAW;

}

    else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )

{

        *pResult = CDRF_NOTIFYSUBITEMDRAW;

}

    else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )

{

COLORREF clrNewTextColor, clrNewBkColor;

        

int    nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );

//设置背景色

if( nItem%2 ==0 )

{

clrNewBkColor = RGB( 240, 240, 240 ); //偶数行背景色为灰色

}

else

{

clrNewBkColor = RGB( 255, 255, 255 ); //奇数行背景色为白色

}

// pLVCD->clrText = clrNewTextColor;

pLVCD->clrTextBk = clrNewBkColor;

        *pResult = CDRF_DODEFAULT;

}

}