2008-10-05 35 views
3

即时通过WM_NCPAINT,WM_NCCALCSIZEWM_NCACTIVATE来为我正在处理的应用程序绘制自己的颜色/主题标题栏。现在这个工作很好,但min,max和close按钮仍然是xp默认主题。更改最小/最大/关闭按钮主题

我看着什么控制他们和鼠标消息做。然而,他们也控制了我不想失去的大小和其他功能。

有没有一种简单的方法只是改变这些按钮的主题?

  • 的Windows XP
  • MFC窗体
  • 的Visual Studio 2005
+0

程序,傲慢地覆盖我的选择图形界面的美观是我人生的宠物之一恨。只是不要这样做。让用户的最大,最小和关闭按钮看起来像用户选择他们看起来! – 2008-10-05 08:36:16

+0

如果这是具有可定制外观的应用程序的一部分,该怎么办?谁说过有关用户的任何事情都没有发言权? – 2008-10-05 09:03:14

回答

2

我觉得这里最好的办法是禁用按钮,并用一个类似于到the code I posted in this answer重绘他们。这是一个在C#与的WinForms,但绝大多数被重载的WndProc()无论如何,你应该能够使用几乎复制/粘贴到MFC。

实现点击处理程序做你想让他们做的是平凡的。

注:这个问题的提问者说,代码没有工作在Vista。我没有Vista盒子,但它适用于XP。

0

您还可以看看它是如何在MFC下(VS2008 SP1)来完成。主题支持自定义绘制整个标题栏,你可以从中得到一些想法。我相信,他们测试了Vista的,太;)

相关问题