ctreectrl控件节点不同颜色(绝对靠谱)

   响应NM_CUSTOMDRAW消息


void CZvanRTSPClientDlg::OnNMCustomdrawTree(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTVCUSTOMDRAW pNMCD = reinterpret_cast(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就是灰色,本方法绝对靠谱,亲自试验过

你可能感兴趣的:(VC++)