【Misson3 画面】 |
![]() |
図1 Mission3画面 |
【ステップ2−1 フレームウインドウクラスの改造 Part1】 | 解説 |
![]() |
ワークスペースより、"MainFrm.cpp" をダブルクリックする。 すると左のような画面になったはずだ。 続いて、ファイルの先頭近辺にある #include "MainFrm.h" の後に、 #include <d3d8.h> #include <d3dx8.h> #include "d3dmain.h" の三行を書き足す。 |
図2 アプリケーションクラスの改造 |
改造前 | 改造後 |
---|---|
![]() |
![]() |
リスト1a | リスト1b |
【ステップ2−2 最大化コントロールへの対応】 | 解説 |
![]() |
「クラス名」に「CMainFrm」を選択、 「メッセージ」という欄より「WM_SIZE」を 探し出して、選択(マウスでクリック)する。 そのあと、「関数の作成」ボタンをクリックして、 「コード編集」ボタンをクリック。 |
図3 クラスウィザード画面 |
| |||
リスト2 改造前 | |||
解説 |
すると、上のようなプログラムが表示されたはずです。
OnSize(・・・) は、Windows のウインドウのサイズが変更された時に 呼び出されるプログラムです。 つまり、画面が最大化されても、このプログラムが呼び出される 事になります。 これを、以下のように改造します。 | ||
![]() | |||
リスト3 改造後 |
![]() |
|
左図のようになりますね。
ただ、一般にゲーム画面ではマウスカーソルは いらないはず。 次のステップで消してしまいましょう。 |
【ステップ3−1 マウスカーソルの消去】 | 解説 |
![]() |
再度、ClassWizard です。 「クラス名」に「CMainFrm」を選択、 「メッセージ」という欄より「WM_SETCURSOR」を 探し出して、選択(マウスでクリック)する。 そのあと、「関数の作成」ボタンをクリックして、 「コード編集」ボタンをクリック。 |
図5 クラスウィザード画面 |
| |||
リスト4 改造前 | |||
解説 |
すると、上のようなプログラムが表示されたはずです。
ここは、ウィンドウの上にカーソルが入った時など、 カーソルを変更すべきタイミングで呼び出されます。 これを、以下のように改造します。 | ||
![]() | |||
リスト5 改造後 |
【ステップ4−1 フルスクリーン・ウインドウモード切替】 | 解説 |
![]() |
再度、ClassWizard です。 「クラス名」に「CMainFrm」を選択、 「メッセージ」という欄より「WindowProc」を 探し出して、選択(マウスでクリック)する。 そのあと、「関数の作成」ボタンをクリックして、 「コード編集」ボタンをクリック。 |
図5 クラスウィザード画面 |
| |||
リスト6 改造前 | |||
解説 |
すると、上のようなプログラムが表示されたはずです。
ここは、イベントが呼ばれた時、それをMFCが処理する前に受け取れる関数です。 これを、以下のように改造します。 | ||
![]() | |||
リスト7 改造後 | |||
解説 |
ToggleFullscreen は、d3dmain.cpp の中にある関数です。
現在フルスクリーンモードであればウィンドウモードに切り替えます。 現在ウィンドウモードであればフルスクリーンモードに切り替えます。 また、IsWindowed は、d3dmain.h の中で宣言しているマクロです。 これは現在ウィンドウモードであれば TRUE を、 そうでなければFALSE を返します。 ここでは、もしフルスクリーンモードであれば、終了キー(Alt+F4) 以外の アプリケーションに対するショートカットおよびメニュー操作を無効にしています。 |