スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

XNAにWindowsコントロールを取り入れる

チャットシステムを作っているとき日本語入力ができるテキストボックスが無いといろいろ不便だ。
とりあえず簡単にコントロールが読み込めるので方法を記載

まずソリューションエクスプローラでプロジェクト名右クリック>追加>新しい項目>WindowsForm
(名前はここではWinControlにした)

んでもって左のツールボックスから適当にボタンやらコンボボックスやらテキストボックスを選んで配置

フォーム上を右クリックしてコードを表示を選択

そこにまず
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
を追加

んでもって
class WinControlManager
{
GraphicsDeviceManager graphics;
Form XnaForm;
WinControl ControlForm;
public WinControlManager(Game game, GraphicsDeviceManager graphics)
{
ControlForm = new WinControl();
this.graphics = graphics;
XnaForm = Form.FromHandle(game.Window.Handle) as Form;
XnaForm.FormBorderStyle = FormBorderStyle.None;//本来のXNAの枠を無くす
XnaForm.Dock = DockStyle.Fill;//左上で揃える
XnaForm.TopLevel = false;
ControlForm.Controls.Add(XnaForm);//コントロール追加
ControlForm.Show();
}
}

っとクラスを追加してやる
これで準備完了~!

あとは
フィールドに
WinControlManager winControlManager;
コンストラクタに
winControlManager = new WinControlManager(this, graphics);
としてやればOK
例)
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Network network;
WinControlManager winControlManager;
private SpriteFont font; //フォント

public Game1()
{
graphics = new GraphicsDeviceManager(this);
winControlManager = new WinControlManager(this, graphics);
Content.RootDirectory = "Content";
}


めでたしめでたし

gui.jpg

ねよっと。

コメントの投稿

非公開コメント

No title

昔同じようにつくろうとして、出来なくて断念してたんですが
できるんですね
すばらしい

トラックバックさせていただきました。

勝手ながらトラックバックをさせていただきました。
速度改善方法を記載しましたので、もしよろしければご覧下さい。

Re: トラックバックさせていただきました。

初トラックバックありがとうございます!トラックバックの意味も今知りました!

ブログを覗いてみたのですがプログラム上級者の情報サイトといった感じで関心致しました。
速度に関する考察は気になっていたところなので大変助かります。
こちらでもじっくり試して記事に取り上げさせて頂きたく存じます!
プロフィール

あしゅ

Author:あしゅ
ぷぃぷぃ日常。
いつのまにか雑記ブログに。

カテゴリ
最新記事
検索フォーム
最新コメント
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。