VC listview控制元件設定條目的背景色
1、新增訊息
在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之間新增訊息對映
ON_NOTIFY(NM_CUSTOMDRAW,IDC_LIST_SHOWSTATE,OnCustomdrawList)
2、新增宣告
在標頭檔案AFX_MSG之間新增
afx_msg void OnCustomdrawList(NMHDR*, LRESULT*);
3、新增實現程式碼
在窗體類的實現檔案新增
void CYourDlg::OnCustomdrawList(NMHDR* pNMHDR,LRESULT* pResult)
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
*pResult = 0;
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)
{
int nItemSpec = pLVCD->nmcd.dwItemSpec;
int nSubItem = pLVCD->iSubItem;
//根據nItemSpec ,nSubItem 分別處理
//設定背景色呼叫pLVCD->clrTextBk=RGB(?,?,?);
//例如隔行換色
if(nItemSpec %2)
pLVCD->clrTextBk=RGB(255,0,0);
else
pLVCD->clrTextBk=RGB(0,255,0);
*pResult=CDRF_DODEFAULT;
}
}