如何用MFC创建一个完全透明的窗口?

时间:2009-01-13 08:06:18

标签: mfc window transparent

我想用MFC创建一个完全透明的窗口,但我不知道如何做到这一点。你能告诉我路吗?

非常感谢!

3 个答案:

答案 0 :(得分:2)

您可以使用分层窗口来实现透明效果。见http://msdn.microsoft.com/en-us/library/ms997507.aspx。确保设置WS_EX_LAYERED位并使用UpdateLayeredWindow。这样即使窗口对用户不可见,也可以捕获消息。

答案 1 :(得分:0)

透明我认为你的意思是隐形,而不是半透明。您可以将窗口的区域设置为空白区域。查看Win32 API中的SetWindowRgnRegion Functions。如果你想避免纯Win32调用,可能会有一些等效的MFC类和方法(例如CRgn)。

答案 2 :(得分:0)

如果你真的想要隐形,那么你可以简单地清除windowstyle中的WS_VISIBLE位。覆盖PreCreateWindow并确保清除此标志。

或者,您可以通过在CreateWindow调用中将HWND_MESSAGE指定为父hwnd来创建仅处理消息的窗口。