我目前正在覆盖WM_NCPAINT
,WM_NCCALCSIZE
并WM_NCACTIVATE
为我正在处理的应用程序绘制我自己的颜色/主题标题栏。现在这很好用,但是最小、最大和关闭按钮仍然是 xp 默认主题。
我研究了控制它们和鼠标消息的作用。然而,他们也控制调整大小和我不想失去的其他功能。
有没有简单的方法来改变这些按钮的主题?
- 视窗
- MFC 表单
- 视觉工作室 2005
我认为您最好的选择是禁用按钮并使用类似于我在此答案中发布的代码重新绘制它们。它在带有 WinForms 的 C# 中,但绝大多数都重载了 WndProc(),您应该几乎可以将其复制/粘贴到 MFC 中。
实现点击处理程序来做你想让他们做的事情是微不足道的。
注意:该问题的提问者说代码在 Vista 中不起作用。我没有 Vista 盒子,但它适用于我的 XP。
这也有帮助: http: //www.catch22.net/tuts/titlebar
您还可以查看它是如何在 MFC Next (VS2008 SP1) 中完成的。那里的主题支持对整个标题栏进行自定义绘制,您可以从中获得一些想法。我想他们也在 Vista 上对其进行了测试;)