防止DirectX全屏中断。

时间:2014-02-03 12:17:17

标签: .net fullscreen directx-11 sharpdx

我正在使用sharpdx的工具包制作全屏directx 11窗口。

现在每当另一个应用程序打开一个窗口时,这个全屏就会丢失。 (例如来自Skype的弹出窗口,错误消息,......)

我已经看到其他游戏可以以某种方式避免这种情况,所以我想知道这是否也可以使用sharpdx工具包,如果是这样,怎么样?

如果使用工具包是不可能的,那么如何使用directx 11函数呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

我在一段时间内创建的XNA应用程序遇到了类似的问题。我使用Windows API PInvoke取得了一些成功。

MSDN

private static class NativeMethods
{
    [DllImport("user32.dll", SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool LockSetForegroundWindow(uint uLockCode);
    public static readonly uint LSFW_LOCK = 1;
    public static readonly uint LSFW_UNLOCK = 2;
}

// Prevent annoying windows notifications etc from stealing focus and ruining the show!
NativeMethods.LockSetForegroundWindow(NativeMethods.LSFW_LOCK);