你可以在全屏DirectX层上绘制Winform吗?

时间:2013-03-18 23:53:50

标签: windows winforms winapi directx winforms-interop

我有一个使用DirectX渲染3D的原生C ++应用程序。 该应用程序可以使用IDXGISwapChain :: SetFullscreenState()在窗口和全屏之间切换 但是我的一些UI是在托管dll中的.Net Winform中。

在窗口模式下,我只需调用.Net dll,即可打开辅助Winform,因此有两个窗口,即主要的本机MFC / DirectX和.Net Winform控件。

但是当DirectX全屏显示时,我可以让Winform显示在Direct X层之上吗? 它甚至可能吗?

仅设置Winform属性 this.TopMost = true; 还不够。 winform位于Direct X层下。 我只想在整个屏幕上使用“我的”WinForm。

1 个答案:

答案 0 :(得分:0)

你可以copy your WinForm's DC到内存中的位图并将其复制到DirectX渲染surface并将消息传递回WinForm。如果你试着这么做的话,它可能会很慢。