我想让XNA游戏窗口处于“窗口”模式,但“总是在顶部”,有没有办法做到这一点?
答案 0 :(得分:4)
感谢您的回复,该网页的代码无法为我编译,但它确实指出了我正确的方向,这是我正在使用的代码(使用XNA 3.1)
首先,在与此代码中的游戏复制和粘贴相同的命名空间内
class User32
{
[DllImport("user32.dll")]
public static extern void SetWindowPos(uint Hwnd, int Level, int X, int Y, int W, int H, uint Flags);
}
我刚把它写在我的主要“游戏”类之上,因为我只在我的Game类中使用它。
然后在游戏类的LoadContent()中(必须在LoadContent()方法中,在其他任何地方都不能正常工作),在某处写这个......
User32.SetWindowPos((uint)this.Window.Handle, -1, 0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight, 0);
注意:“graphics”是每当您启动项目时为您预先制作的GraphicsDeviceManager实例。
这也可用于将游戏窗口定位在屏幕上的任何位置。对我来说,我希望它在屏幕的左上角。
答案 1 :(得分:3)
http://www.pinvoke.net/default.aspx/user32/SetWindowPos.html
在WinApi类中包含示例页面中的值,并从您的游戏类中调用此函数:
WinApi.SetWindowPos(this.Window.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);
应该这样做。
答案 2 :(得分:0)
最简单的方法是将图形设备设置为全屏显示。将以下代码放在主游戏方法中:
this.graphics.IsFullScreen = true;