使用视觉样式设置WinAPI工具栏的背景颜色?

时间:2010-07-08 01:20:58

标签: c++ c winapi

有没有办法设置背景颜色。我想制作一个虚拟窗口,然后使用TBSTATE_TRANSPARENT,但我认为可能有一个更清洁的解决方案?

由于

这些解决方案都不适用于使用视觉样式的工具栏

4 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您需要做的是通过处理WM_PAINT

完全重绘工具栏

阅读这篇文章:http://www.codeguru.com/cpp/controls/toolbar/flattoolbar/article.php/c2535/

答案 2 :(得分:0)

您可以子类化工具栏窗口并处理WM_ERASEBKGND消息或处理WM_CTLCOLORDLG消息并返回所需的背景画笔吗?

您可能也可以使用WM_CTLCOLORBTN执行某些操作 - 这不需要您将窗口子类化,因为它已移交给父窗口。

答案 3 :(得分:0)

您可以使用SetClassLong()致电GCL_HBRBACKGROUND并传递使用CreateSolidBrush()创建的画笔。
如果希望背景为图像,也可以传入图案画笔。