2009-07-14 4 views

答えて

4

おかげで、その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のインスタンスです。

これは、画面上の任意の場所にゲームウィンドウを配置するためにも使用できます。私にとっては、画面の左上隅にそれが欲しかった。

+0

私はサイズのものなしでより多くのマーカス・ソリューションを好き:) – mnn

+0

私たちは、実際には同じソリューションに非常に近い持っている..あなたが実際にそのページからコードを見た場合、あなたは違いは、私のUser32クラスははるかに単純であり、オブジェクトの代わりにプリミティブ変数を使用し、不要な便利メソッドを持たないという点です。 私のソリューションを使用している理由は、User32クラスのいくつかのconst変数と静的変数を作成するときにコンパイル時にエラーが発生したためです。 – Danny

3

http://www.pinvoke.net/default.aspx/user32/SetWindowPos.html

WINAPIクラスのサンプルページから値を含めると、あなたのゲームクラスからこの関数を呼び出す:

それを行う必要があります
WinApi.SetWindowPos(this.Window.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS); 

。あなたの応答のための

0

最も簡単な方法は、グラフィックスデバイスをフルスクリーンで表示するように設定することです。メインのゲーム方法で次のコードを配置します。

this.graphics.IsFullScreen = true; 
+0

はい、私はそれを行うことができますが、私の要件はウィンドウモードでウィンドウを維持し、一番上にすることです。私は自分自身の質問のために提供した答えですでに行ってしまっていますが、StackOverflowはまだ自分の答えを受け入れることはできません。 – Danny

関連する問題