1

DirectX を使用して 3D をレンダリングするネイティブ C++ アプリケーションがあります。アプリは、IDXGISwapChain::SetFullscreenState() を使用して、ウィンドウ表示とフルスクリーンを切り替えることができます。
ただし、私の UI の一部は、マネージ dll の .Net Winform にあります。

ウィンドウ モードでは、.Net dll を呼び出すだけで、セカンダリ Winform が開きます。つまり、メインのネイティブ MFC/DirectX と .Net Winform コントロールの 2 つのウィンドウが表示されます。

しかし、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 に答える