C++ 需要透明覆盖窗口在窗口顶部绘制线条绘制视频吗?::MFC,C++;,窗户::

C++ 需要透明覆盖窗口在窗口顶部绘制线条绘制视频吗?::MFC,C++;,窗户::,c++,windows,activex,overlay,transparent,C++,Windows,Activex,Overlay,Transparent,如何创建一个透明窗口,该窗口可以放置在另一个正在积极绘制流式视频的窗口上。我想在视频窗口的顶部创建一个窗口,这样我就可以在上面画画,而不必不断地在上面画视频 我可以从透明对话框资源创建一个窗口,并使用SetWindowPos(…)设置其z顺序,但它似乎没有任何效果。将对话框设置为WS_子样式或WS_弹出窗口似乎也没有效果 我正在使用我公司另一个开发小组开发的媒体(视频)框架,并为该代码提供一个窗口句柄。该句柄正由其渲染插件在管道中使用,该管道使用Direct3d在该窗口表面上渲染视频。视频将渲染

如何创建一个透明窗口,该窗口可以放置在另一个正在积极绘制流式视频的窗口上。我想在视频窗口的顶部创建一个窗口,这样我就可以在上面画画,而不必不断地在上面画视频

我可以从透明对话框资源创建一个窗口,并使用SetWindowPos(…)设置其z顺序,但它似乎没有任何效果。将对话框设置为WS_子样式或WS_弹出窗口似乎也没有效果


我正在使用我公司另一个开发小组开发的媒体(视频)框架,并为该代码提供一个窗口句柄。该句柄正由其渲染插件在管道中使用,该管道使用Direct3d在该窗口表面上渲染视频。

视频将渲染到视频适配器中的硬件覆盖。您需要创建自己的覆盖层来覆盖该覆盖层。我认为DirectX提供了这种功能,您也可以通过使用WS_EX_分层窗口样式和SetLayeredWindowAttributes()来获得这种功能。您需要设置透明度键。顺便说一句,我不太确定这是一个扣篮,我看到它的行为很奇怪。

视频被渲染到视频适配器中的硬件覆盖。您需要创建自己的覆盖层来覆盖该覆盖层。我认为DirectX提供了这种功能,您也可以通过使用WS_EX_分层窗口样式和SetLayeredWindowAttributes()来获得这种功能。您需要设置透明度键。顺便说一句,我不太确定这是一个扣篮,我看到它的行为很奇怪。

昨天在签入查看您给出的答案之前,使用带有colorkey的WS_EX_LAYERED属性实现了这一功能。由于窗口不能是WS_-EX_分层的WS_子样式,因此覆盖窗口的管理有些奇怪。此时此刻,我正在关注这一奇怪现象,试图避免它-不过谢谢你的回答。在签入查看你给出的答案之前,昨天使用带有colorkey的WS_EX_LAYERED属性实现了这一点。由于窗口不能是WS_-EX_分层的WS_子样式,因此覆盖窗口的管理有些奇怪。此时此刻,我正在关注这一奇怪现象,试图避免它-谢谢你的回答。