1
votes

I have a native C++ application that is rendering 3D using DirectX. The app can switch between windowed and fullscreen using IDXGISwapChain::SetFullscreenState().
However some of my UI is in a .Net Winform in a managed dll.

In windowed mode I just call into the .Net dll and that opens the secondary Winform, so two windows, the main native MFC/DirectX and .Net Winform control.

But when the DirectX is in full screen, can I get the Winform to be show above the Direct X layer? Is it even possible?

Merely setting the Winform property this.TopMost = true; is not sufficient. The winform is under the Direct X layer. I just want "my" WinForm over the full screen.

1
I'm pretty sure that this is not possible. That's the whole point of the "full screen" mode—to allow the application to own the entire screen.Cody Gray

1 Answers

0
votes

You could copy your WinForm's DC onto bitmap in memory and copy that onto a DirectX rendering surface and pass messages back to the WinForm. It might be slow thow though, if you try to do very much.