(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