【发布时间】:2009-01-13 08:06:17
【问题描述】:
我想用 MFC 创建一个完全透明的窗口,但我不知道该怎么做。你能告诉我路吗?
非常感谢!
【问题讨论】:
标签: mfc window transparent
我想用 MFC 创建一个完全透明的窗口,但我不知道该怎么做。你能告诉我路吗?
非常感谢!
【问题讨论】:
标签: mfc window transparent
您可以使用分层窗口来实现透明效果。见http://msdn.microsoft.com/en-us/library/ms997507.aspx。请务必设置 WS_EX_LAYERED 位并使用 UpdateLayeredWindow。即使窗口对用户不可见,这也允许您捕获消息。
【讨论】:
我认为透明是指不可见,而不是半透明。您可以将窗口的区域设置为空白区域。查看 Win32 API 中的 SetWindowRgn 和 Region Functions。如果您想避免纯 Win32 调用,可能会有一些等效的 MFC 类和方法(例如 CRgn)。
【讨论】:
如果你真的想要不可见,那么你可以简单地清除窗口样式中的 WS_VISIBLE 位。覆盖 PreCreateWindow 并确保清除此标志。
或者,您可以通过在 CreateWindow 调用中将 HWND_MESSAGE 指定为父 hwnd 来创建仅处理消息的窗口。
【讨论】: