如何在mfc中更改列表控件中的突出显示颜色 [英] How to change highlight color in list control in mfc
本文介绍了如何在mfc中更改列表控件中的突出显示颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在基于MFC对话框的应用程序中,我覆盖了listcontrol的NM_CUSTOMDRAW,并在下面的代码中尝试更改列表控件的高亮颜色,但高亮颜色没有变化。
In MFC dialog based application I overrided NM_CUSTOMDRAW of listcontrol and tried below code to change the highlight color of list control but the highlight color is not changing.
void CMyDialog::OnNMCustomdrawList1(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
*pResult = CDRF_DODEFAULT;
switch(pLVCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW; // ask for subitem notifications.
break;
case CDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case CDDS_SUBITEM | CDDS_ITEMPREPAINT:
{
if((m_ctrlAllTagsList.GetItemState(pLVCD->nmcd.dwItemSpec, LVIS_SELECTED) & LVIS_SELECTED))
{
pLVCD->clrTextBk = RGB(255,0,0);//GetSysColor(COLOR_HIGHLIGHTTEXT);
pLVCD->clrText = GetSysColor(COLOR_HIGHLIGHTTEXT);
*pResult =CDRF_NEWFONT;
}
break;
}
default:
break;
}
}
推荐答案
快速观察 - 代码应返回CDRF_NOTIFYITEMDRAW以响应CDDS_PREPAINT
Just a quick observation -- the code should return CDRF_NOTIFYITEMDRAW in response to CDDS_PREPAINT
这篇关于如何在mfc中更改列表控件中的突出显示颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文