XNAゲームウィンドウを「ウィンドウ」モードにしたいが、「常に上に」する方法がありますか?XNAでゲームウィンドウを「常に上に」表示する
答えて
おかげで、そのWebページからのコードは、私のためにコンパイルされないでしょうが、それは正しい方向に私を指すんでした、これは私が、
まず(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;
はい、私はそれを行うことができますが、私の要件はウィンドウモードでウィンドウを維持し、一番上にすることです。私は自分自身の質問のために提供した答えですでに行ってしまっていますが、StackOverflowはまだ自分の答えを受け入れることはできません。 – Danny
私はサイズのものなしでより多くのマーカス・ソリューションを好き:) – mnn
私たちは、実際には同じソリューションに非常に近い持っている..あなたが実際にそのページからコードを見た場合、あなたは違いは、私のUser32クラスははるかに単純であり、オブジェクトの代わりにプリミティブ変数を使用し、不要な便利メソッドを持たないという点です。 私のソリューションを使用している理由は、User32クラスのいくつかのconst変数と静的変数を作成するときにコンパイル時にエラーが発生したためです。 – Danny