我正在使用sharpdx的工具包制作全屏directx 11窗口。
现在每当另一个应用程序打开一个窗口时,这个全屏就会丢失。 (例如来自Skype的弹出窗口,错误消息,......)
我已经看到其他游戏可以以某种方式避免这种情况,所以我想知道这是否也可以使用sharpdx工具包,如果是这样,怎么样?
如果使用工具包是不可能的,那么如何使用directx 11函数呢?
谢谢!
答案 0 :(得分:0)
我在一段时间内创建的XNA应用程序遇到了类似的问题。我使用Windows API PInvoke取得了一些成功。
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);