比如我的CTreeCtrl 结构是
-1
-1.1
-1.1.1
-1.1.2
-1.2
-2
-2.1我想实现的是-1和-2 包括子项的字体颜色区别开来。。
比如
-1
-1.1
-1.1.1
-1.1.2
-1.2
字体颜色是红色
而
-2
-2.1
是蓝色。。
-1
-1.1
-1.1.1
-1.1.2
-1.2
-2
-2.1我想实现的是-1和-2 包括子项的字体颜色区别开来。。
比如
-1
-1.1
-1.1.1
-1.1.2
-1.2
字体颜色是红色
而
-2
-2.1
是蓝色。。
关键是。。节点的颜色要不一样 这个能做到》? 具体点
然后更改对应点的文字颜色!!
LPNMTVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMTVCUSTOMDRAW>(pNMHDR);
switch (pNMCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
return;
case CDDS_ITEMPREPAINT:
// 这里做判断
pNMCD->clrText = RGB(0, 255, 255); // 这样设置文字颜色
pNMCD->clrTextBk = RGB(0, 0, 255); // 这样设置背景颜色
break;
}
*pResult = 0;
最后设置颜色时用GetItemData获取你设置的识别项就可以判别来!!
int OnNotify(WPARAM wParam,LPARAM lParam)
{
LPNMTVCUSTOMDRAW pNMTVCD=(LPNMTVCUSTOMDRAW)lParam;
switch(pNMTVCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
return CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
{
//判断标签,简单的说就是遍历树。请参考MSDN中的消息TVM_GETNEXTITEM
//设置文本color
pNMTVCD->clrText=RGB(,,);
pNMTVCD->clrTextBk=RGB(,,);
}
break;
RETURN CDRF_DODEFAULT;
}