CLineColorListCtrl MFC行颜色定制控件

ListCtrl 的行背景色定制功能,用过一次就离不开。MFC 里的 CListCtrl 是个老牌控件,用来做表格展示再合适不过,但默认样式真的有点土。想让界面“活”起来?你可以试试扩展它的绘制逻辑。

CLineColorListCtrl 是对 CListCtrl 的一个派生类扩展,专门用来设置每一行的文字颜色和背景色。你可以用 SetItemColor 单独改某一行,也可以用 SetAllItemColor 一把梭全改,想清空配色用 ClearColor 就行,接口挺直观的。

它内部维护了一个 CMap 来存行号和颜色配置,配合 OnNMCustomdraw 消息回调,整个绘制过程就能灵活接管。你只需要注意父窗口的 ON_NOTIFY 别漏了,不然颜色改了也没效果。

界面风格统一、强调某些行、配色提示状态,这类场景下有用。比如高亮出错的那一行、标记重点数据、甚至用颜色做交互引导,都是常见的做法。

如果你也在用 MFC 开发后台管理工具或数据展示界面,这段代码真的值得收藏。要更多灵感?可以看看这些相关的配色技巧:

如果你是第一次 OnNMCustomdraw,建议断点调试看绘制流程,顺便理解一下 MFC 的绘图事件响应模型,后面定制其他控件也就不怕了。

doc 文件大小:142KB