有没有办法设置背景颜色。我想制作一个虚拟窗口,然后使用TBSTATE_TRANSPARENT,但我认为可能有一个更清洁的解决方案?
由于
这些解决方案都不适用于使用视觉样式的工具栏
答案 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()
创建的画笔。
如果希望背景为图像,也可以传入图案画笔。