如何让ListCtrl控件失去焦点后还高亮,据说需要重绘,但遇到问题

yeaiping yeaiping 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我派生了CListCtrl类,ClistCtrlEx,然后在它里面使用如下:
afx_msg void OnCustomDraw(NMHDR*,LRESULT*);
....
//消息映射
ON_NOTIFY_REFLECT(NM_CUSTIOMDRAW,OnCUstomDraw)
....

//函数
void CListCtrlEx::OnCustonDraw(NMHDR* pNMHDR,LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lpLvcd=(LPNMLVCUSTOMDRAW)pNMHDR;
switch(lpLvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult=CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
**pResult=CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
//在这里重绘
//如何判断是对选中的Item进行重绘,我不会
。。。。。。。。。。
lpLvcd->clrText=RGB(0,0,0);// 黑色字体
lpLvcd->clrTextBk=RGB(0,0,255);//蓝色背景
*pResult=CDRF_DODEFULT;
break;
default:
*pResult=CDRF_DODEFULT;
break;
}
}
然后在主函数中定义: CListCtrlEx m_ctrlList;

以上代码都是网上找的,确实可以重绘,但是没有写如何重绘,重绘失去焦点的项目。
我猜应该是在失去焦点的事件中重绘,然后再判断是哪个选中了。上面的是把所有所有项都重绘了。
...全文

相关推荐

评论 29
收藏 已收藏
分享
返回顶部
yeaiping
界面 15,976 成员 115,866 内容