在Windows API的窗口边界绘制

时间:2017-10-08 19:29:48

标签: c# wpf windows winapi

如何在Windows API上绘制窗口范围之外(不仅仅是在客户区域外)?

我需要能够在窗口边界之外绘制投影,彩色光晕或任何其他自定义设计,因此我可以使用外部发光或阴影实现完整的自定义窗口主题设计。我的问题是如何在Windows API上实现这一点。

在我的搜索中,我发现一些开发人员使用在实际窗口后面组合一个“鬼”窗口,因此可以在其上绘制阴影或任何东西,而对于用户来说,似乎只有一个窗口。这是做我需要的好方法吗?

嗯,为了实现这一点,我想知道Windows API上需要使用哪些函数来使“ghost”窗口在我点击 Alt + Tab Windows + Tab ,基本上让那个“鬼”窗口真的成了鬼。

我将使用C#在WPF上执行此操作,但问题实际上与Windows API有关,与框架无关。

提前致谢!

1 个答案:

答案 0 :(得分:0)

创建一个无头窗口(没有_ [] X),使其透明,并在里面创建一个固定的框架(框架是一个可以包含其他东西的矩形)。因此,1个窗口1帧,在该帧周围,您可以添加更多包含半透明内容的帧,以创建阴影效果。

主无头窗必须足够大以吸引所有内部。如果你只创建一个窗口(所有其他东西都是框架或其他小部件),Alt Tab就没有问题。

在固定框架内,您可以再次创建(_ [] X)按钮以产生幻觉。 API存在于此,然后可以绑定到这些按钮。

PS:可能有多个解决方案