1

我有一个使用 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。

4

1 回答 1

0

您可以将 WinForm 的 DC复制到内存中的位图上,然后将其复制到 DirectX 渲染表面并将消息传递回 WinForm。但是,如果您尝试做很多事情,它可能会很慢。

于 2013-03-19T23:19:30.073 回答