(VS2008,MFC,功能包)更改所选CTreeCtrl项目的颜色?
使用CTreeCtrl时,我需要在控件失焦时突出显示所选项目“更好”。
我的树是使用资源编辑器中的“TVS_SHOWSELALWAYS”选项创建的,但颜色不够明显。
我已经有代码通过自定义绘制消息(NM_CUSTOMDRAW)这样更改的项目颜色:
void MyTree::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
NMTVCUSTOMDRAW *pcd = (NMTVCUSTOMDRAW *)pNMHDR;
switch (pcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT :
{
HTREEITEM hItem = (HTREEITEM)pcd->nmcd.dwItemSpec;
if (this->IsSelected(hItem))
{
pcd->clrText = GetSysColor(COLOR_HIGHLIGHTTEXT);
pcd->clrTextBk = GetSysColor(COLOR_HIGHLIGHT);
}
*pResult = CDRF_DODEFAULT;// do not set *pResult = CDRF_SKIPDEFAULT
break;
}
}
}
它的工作,但似乎是大材小用一个简单的任务,因为这。
我认为我必须要做一些明显的事情,而不必这样做。
更简单吗?
谢谢。
感谢,将看。 – Max 2010-01-22 20:23:48