早速DirectDrawに取りかかりたい所ですが、その前に「最小サイズのあるウィンドウ」を作ります。下の手順を行ってください。
この手順の中で特に重要なのが、参照の追加です。DirectDrawを利用するためには、プロジェクトごとに「Microsoft.DirectX」と「Microsoft.DirectX.Direct3D」それと「Microsoft.DirectX.Direct3DX」の参照を追加してあげる必要があります。
ここの手順の仕方がよく分からない場合は、.Netプロジェクトの設定に設定の仕方が載っています。
ここまで来たらソース書きです。
using System.Windows.Forms; using System.Drawing; namespace Project1 { /// <summary> /// md3d1 の概要の説明です。 /// </summary> public class md3d1:Form { //クライアント領域のサイズ const int clientHeight =600; const int clientWight =800; public md3d1():base() { //最小サイズを設定 this.MinimumSize = new Size(60,60); //下は任意です。 //固定サイズのフォーム(任意、これを付けるとサイズが変わらなくなる) //this.FormBorderStyle = FormBorderStyle.FixedSingle; //サイダかボタン無し this.MaximizeBox = false; //クライアント領域サイズ this.ClientSize =new Size(clientWight,clientHeight); //ウィンドウの名前(かっこいいのを付けてあげてください) this.Text ="Direct3D-My"; } } /// <summary> /// エントリクラス /// </summary> class Program { public static void Main() { Application.Run(new md3d1()); } } }
ここでは最小サイズの設定と、その他を行っています。
最小サイズの設定は後々のエラーをなくすためです。これをしておくと、Direct3Dを行ったときに起きるエラーを減らすことが出来ます。
このコードの中で見慣れないものはクライアントサイズだと思います。このサイズは、「ウィンドウサイズ全体からメニューバーや、枠を除いた部分のサイズ」です。要するに、自由にユーザーやプログラマが自由に使える領域です。たとえば、「800*600」にビデオを再生するとします。このときウィンドウのサイズはいくらにすればいいでしょうか?そんなときに「ClientSize」を利用します。
「ウィンドウの固定サイズ化」と「最大化禁止」はコメントアウトしてありますが、必要であれば利用してください。
次はメッセージループに取りかかります。
2006-5-13 標準でサイズ可変なのでそれに合うように書き換え