更改列表视图和树视图颜色的最简单方法
时间:2020-03-05 18:48:07 来源:igfitidea点击:
我正在尝试找到一种简单的方法来更改WTL或者纯Win32代码中的listview
和treeview
控件中文本和背景的颜色。
我真的不想为这些控件实现完整的所有者绘图,只需更改使用的颜色即可。
我想确保图像仍以适当的透明度绘制。
有什么建议?
解决方案
回答
自从我直接使用win32 API以来已经有一段时间了,但是我相信,如果我们为控件处理WM_ERASEBACKGROUND消息,则可以在处理程序中使用FillRect()使用所需的任何颜色绘制背景。
回答
看一下以下宏:
ListView_SetBkColor
ListView_SetTextColor
TreeView_SetBkColor
TreeView_SetTextColor
回答
还有CListViewCtrl和CTreeViewCtrl包装器类的适当方法:
- GetBkColor
- SetBkColor
回答
我们可能还需要看一下WTL的CCustomDraw :: OnItemPrePaint(也就是说,如果我们需要控制单个项目的绘制)
一篇描述此过程的好文章在这里