让游戏窗口在XNA中始终处于顶端
答
感谢您的答复,从该网页上的代码将无法编译我的,但它没有指出我在正确的方向,这是我使用(使用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);
}
我只是写了上面我主要的“游戏”类,因为我只有我的游戏类中使用它。
然后LoadContent游戏类的()内(必须LoadContent()方法中,不能正常工作其他地方),写这个地方......
User32.SetWindowPos((uint)this.Window.Handle, -1, 0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight, 0);
注:“显卡“是每当您启动项目时为您预制的GraphicsDeviceManager实例。
这也可以用来在屏幕上任意位置放置游戏窗口。对我而言,我希望它在屏幕的左上角。
答
http://www.pinvoke.net/default.aspx/user32/SetWindowPos.html
包括来自一个WINAPI类样本页面中的值,并从你的游戏类调用这个函数:
WinApi.SetWindowPos(this.Window.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);
应该这样做。
答
最简单的方法是将图形设备设置为全屏显示。将下面的代码在主游戏方法:
this.graphics.IsFullScreen = true;
我不喜欢的东西大小:) – mnn 2009-07-15 08:53:49
更马库斯的解决方案实际上,我们有非常接近相同的解决方案..如果你真的从该页面看了看代码,你会看到他的解决方案也有“大小的东西” 不同之处在于我的User32类更简单,使用原始变量而不是对象,并且没有不需要的便利方法。 但是我使用我的解决方案的原因是因为我在编写User32类中的几个常量和静态变量时出现编译时错误。 – Danny 2009-07-15 18:00:42