我正在尝试创建一个简单的透明窗口,我可以使用Direct2D进行绘制。
到目前为止,我所做的一切:
我只是不知道如何使窗口变得透明。如果你能指出我的错误,我将被迫
答案 0 :(得分:2)
我不认为使用directX是可能的。然而,GDI确实有效。
在这里查看来源,看看它是如何完成的:http://pastebin.com/NJf8wi2V
在源代码中,您可以看到有一个选项可以尝试使用directx / opengl。但是,正如您从跑步中看到的那样,它们无法正常工作。
答案 1 :(得分:2)
以下是如何使用DirectComposition API
实现的俄语:http://www.oszone.net/25395/
英语:https://msdn.microsoft.com/magazine/dn745861.aspx
作者基本上做的是
设置WS_EX_NOREDIRECTIONBITMAP扩展样式以删除DWM的重定向位图。窗口内容现在为空。
创建DirectComposition设备
创建合成SwapChain(而非hwnd swapchain)
使用SwapChain将一个视觉效果作为内容显示为root visual。
使用Direct2D API渲染到SwapChain。
它也适用于WS_EX_TRANSPARENT | WS_EX_LAYERED | WS_EX_TOPMOST
来创建事件透明叠加层。