参考文章:
白乔原创:VC之美化界面篇
以下是一个利用 NM_CUSTOMDRAW 消息绘制出的多色ListCtrl的例子。效果图片如下:BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl) ... ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, &CMyListCtrl::OnNMCustomdraw) ... END_MESSAGE_MAP() void CMyListCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast (pNMHDR); *pResult = 0; // TODO: Add your control notification handler code here //指定列表项绘制前后发送消息 if(CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage) { *pResult = CDRF_NOTIFYITEMDRAW; } else if(CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage) { //奇数行 if(pLVCD->nmcd.dwItemSpec % 2) pLVCD->clrTextBk = RGB(255, 255, 128); //偶数行 else pLVCD->clrTextBk = RGB(128, 255, 255); //继续 *pResult = CDRF_DODEFAULT; } }