繁体   English   中英

更改应用程序标题栏的颜色

[英]Change the color of the applications title bar

使用Delphi 7尝试从窗口主题更改软件标题栏的颜色。 我已经看到了允许您更改所有程序的所有标题栏的代码,但是我只是想更改我的程序。

任何人都看过/做过这样的事吗? 如果需要,不要介意为组件付费。

我相信Windows在绘制包括标题栏的窗口框架时会向应用程序发送WM_NCPAINT消息。 默认行为是回退到绘制默认框架的默认Windows处理程序。 您可以替换它,也可以在此之后重新绘制标题栏部分。

这看起来像一个很好的例子: http : //delphi.about.com/od/adptips2006/qt/draw_captionbar.htm

Stijn的答案还不完整,因为(取消)激活窗口时,标题和边框也会重新绘制。 因此,除了WM_NCPAINT之外,您还需要处理WM_NCACTIVATE 不幸的是,这不能简单地替换,因为默认消息处理程序中有其他代码(除了图形代码)需要执行。 但是,调用默认处理程序将导致首先绘制默认标题和边框,然后您需要使用所需的颜色进行绘制,从而导致闪烁。

解决此问题的一种方法是调整调用默认消息处理程序的绘图区域。 有关使用Windows API调用的示例的示例,请参阅“在XP上使用主题绘制标题栏” ,该示例应轻松转换为Delphi。 请注意,这仅处理标题栏中的文本,但该原则适用。

您可能会看一下外观库。 DevExpress的ExpressSkin是一个不错的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM