我目前正在覆盖WM_NCPAINT
,WM_NCCALCSIZE
和WM_NCACTIVATE
为我正在处理的应用程序绘制自己的颜色/主题标题栏。现在这很好用但是min,max和close按钮仍然是xp默认主题。
我调查了控制它们的内容和鼠标消息。然而,他们还控制了调整大小和其他我不想失去的功能。
有没有简单的方法可以更改这些按钮的主题?
答案 0 :(得分:2)
我认为你最好的选择是禁用按钮并用类似the code I posted in this answer的东西重绘它们。它在C#中使用WinForms,但绝大多数都是重载的WndProc(),你应该可以使用它几乎复制/粘贴到MFC中。
实现点击处理程序以执行您希望他们执行的操作非常简单。
注意:该问题的提问者说代码在Vista中不起作用。我没有Vista盒子,但它在XP中适用于我。
答案 1 :(得分:0)
答案 2 :(得分:0)
您还可以在MFC Next(VS2008 SP1)中查看它是如何完成的。主题支持有整个标题栏的自定义绘制,你可以从中得到一些想法。我认为他们也在Vista上测试了它;)