响应NM_CUSTOMDRAW消息
void CZvanRTSPClientDlg::OnNMCustomdrawTree(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMTVCUSTOMDRAW>(pNMHDR);
switch (pNMCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
return;
case CDDS_ITEMPREPAINT:
// 这里做判断
CString s = m_cameraTree.GetItemText((HTREEITEM)pNMCD->nmcd.dwItemSpec);
if (m_cameraTree.GetItemData((HTREEITEM)pNMCD->nmcd.dwItemSpec))
{
pNMCD->clrText = RGB(0, 128, 0); // 这样设置文字颜色
}
else
{
pNMCD->clrText = RGB(210, 180, 140); // 这样设置文字颜色
}
break;
}
*pResult = 0;
}
上门代码中,我是SetItemData了的,如果设置的是就是绿色 ,设置0就是灰色,本方法绝对靠谱,亲自试验过