航空玻璃窗上的非客户端绘画

Ant*_*nov 38 c# c++ user-interface nonclient aero

现在我定制我的应用程序的标题栏.我的目标是在标题栏上添加一个额外的按钮.我以前的问题 人们告诉我我可以自定义非客户区的方式.这是完美的,除了一件小事 - 发光!我可以在非客户区域绘制发光,但我无法将其扩散到窗外.我也找不到关于这个subj的任何资源.

我查看了这个示例并制作了自己的测试应用程序,用于调查非客户端绘图工具.我的应用程序窗口的屏幕截图:

我的应用程序的窗口

因此,当我被边框框剪裁时,您可以看到系统按钮从窗口发出光芒.

例如,Skype的窗口在标题栏中有四个自定义按钮,它们可以从窗口框架中"发光":

Skype的窗口

任何人都可以建议我找出从窗口画出按钮发光的方法吗?
提前致谢!

[编辑]
谢谢大家的答案!

Ian*_*oyd 11

Skype欺骗了它,并且在窗户顶部有一条小条; 他们可以在哪里画画.

您可以使用Process Explorer查看它到SpyXX:

在此输入图像描述

也可以看看

MSDN:使用DWM的自定义窗口框架


hol*_*olt 5

我不认为有可能超越你的NC区域,我有点怀疑他们正在绘制整个UI以完全匹配DWM Aero效果.

鉴于这看起来如何,我想知道他们是否使用CustomBorderForm的帮助或恢复按钮做了一些技巧,然后将获得"免费"的DWM模糊高亮效果.

这是我能找到的最相关的文章:http://geekswithblogs.net/kobush/articles/CustomBorderForms3.aspx

后续 - 我认为这个自定义chrome线程有更多指向相同技术的指针(尽管目标不同):WinForms应用程序中的自定义标题栏/ chrome