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