记笔记!!!
参考文章:https://blog.csdn.net/xiaolongwang2010/article/details/11891331
在CXXXView.h
声明 更改单双行颜色的实现函数:
void OnCustomdrawMyList(NMHDR* pNMHDR, LRESULT *pResult);
在CxxxView.cpp 的 BEGIN_MESSAGE_MAP与 END_MESSAGE_MAP()之间
添加 ON_NOTIFY(NM_CUSTOMDRAW,控件的id, OnCustomdrawMyList)
ps:指定成员函数OnKeydownList1去处理ID为IDC_LIST1的CListCtrl控件的LVN_KEYDOWN消息,可以通过ClassWizard把ON_NOTIFY(
LVN_KEYDOWN, IDC_LIST1, OnKeydownList1 )加入到你的消息映射表里
并实现函数 OnCustomdrawMyList
void CInspectView::OnCustomdrawMyList(NMHDR* pNMHDR, LRESULT *pResult)
{
*pResult = 0;
NMLVCUSTOMDRAW* pNMCD = (NMLVCUSTOMDRAW*)(pNMHDR);
if (CDDS_PREPAINT == pNMCD->nmcd.dwDrawStage)
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if (CDDS_ITEMPREPAINT == pNMCD->nmcd.dwDrawStage)
{
*pResult = CDRF_NOTIFYSUBITEMDRAW;
}
else if ((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pNMCD->nmcd.dwDrawStage)
{
COLORREF clrNewTextColor, clrNewBkColor;
int nItem = static_cast<int>(pNMCD->nmcd.dwItemSpec);
if (nItem % 2)
{
clrNewTextColor = RGB(0, 0, 0);
clrNewBkColor = RGB(173, 216, 230);
}
else
{
clrNewTextColor = RGB(0, 0, 0);
clrNewBkColor = RGB(255, 255, 255);
}
pNMCD->clrText = clrNewTextColor;
pNMCD->clrTextBk = clrNewBkColor;
*pResult = CDRF_DODEFAULT;
}
}