更改列表视图和树视图颜色的最简单方法

时间:2020-03-05 18:48:07  来源:igfitidea点击:

我正在尝试找到一种简单的方法来更改WTL或者纯Win32代码中的listviewtreeview控件中文本和背景的颜色。

我真的不想为这些控件实现完整的所有者绘图,只需更改使用的颜色即可。

我想确保图像仍以适当的透明度绘制。

有什么建议?

解决方案

回答

自从我直接使用win32 API以来已经有一段时间了,但是我相信,如果我们为控件处理WM_ERASEBACKGROUND消息,则可以在处理程序中使用FillRect()使用所需的任何颜色绘制背景。

回答

看一下以下宏:

ListView_SetBkColor
ListView_SetTextColor

TreeView_SetBkColor
TreeView_SetTextColor

回答

还有CListViewCtrl和CTreeViewCtrl包装器类的适当方法:

  • GetBkColor
  • SetBkColor

回答

我们可能还需要看一下WTL的CCustomDraw :: OnItemPrePaint(也就是说,如果我们需要控制单个项目的绘制)

一篇描述此过程的好文章在这里