Mission4: 必要な機能の組み込み。


【ステップ1】

 今度は、Mission3 の続きである。
 VisualC++ の画面は、以下のようになっているはずである。

【Misson3 画面】
図1 Mission3画面


【ステップ2 フルスクリーン表示への対応】

 プロジェクトを改造して行く。 以下の指令に従うべし。


【ステップ2−1 フレームウインドウクラスの改造 Part1】
解説
ワークスペースより、"MainFrm.cpp"
をダブルクリックする。
すると左のような画面になったはずだ。

続いて、

#include "MainFrm.h"

の後に、

#include <d3d8.h>
#include <d3dx8.h>
#include "GameMain.h"
の三行を書き足す。

図2 アプリケーションクラスの改造


改造前 改造後
リスト1a リスト1b


【ステップ2−2 最大化コントロールへの対応】
解説

「クラス名」に「CMainFrm」を選択、
「メッセージ」という欄より「WM_SIZE」を
探し出して、選択(マウスでクリック)する。

そのあと、「関数の作成」ボタンをクリックして、
「コード編集」ボタンをクリック。
図3 クラスウィザード画面


【ステップ2−3 プログラム改造】

リスト2 改造前

解説
すると、上のようなプログラムが表示されたはずです。
OnSize(・・・) は、Windows のウインドウのサイズが変更された時に
呼び出されるプログラムです。

つまり、画面が最大化されても、このプログラムが呼び出される
事になります。

これを、以下のように改造します。


リスト3 改造後


改造し終えたらF5キーを押して実行してみましょう。
図4 実行画面


見た目は何も変わっていないようですが、
ここで、最大化ボタンを押すと・・・・・・・。

図5 最大化
左図のようになりますね。

ただ、一般にゲーム画面ではマウスカーソルは
いらないはず。

次のステップで消してしまいましょう。


【ステップ3】

【ステップ3−1 マウスカーソルの消去】
解説

再度、ClassWizard です。

「クラス名」に「CMainFrm」を選択、
「メッセージ」という欄より「WM_SETCURSOR」を
探し出して、選択(マウスでクリック)する。

そのあと、「関数の作成」ボタンをクリックして、
「コード編集」ボタンをクリック。
図5 クラスウィザード画面


【ステップ3−2 プログラム改造】

リスト4 改造前

解説
すると、上のようなプログラムが表示されたはずです。
ここは、ウィンドウの上にカーソルが入った時など、
カーソルを変更すべきタイミングで呼び出されます。

これを、以下のように改造します。


リスト5 改造後



さて、F5キーを押して実行してみましょう。

すかさず画面を最大化すると・・・・・。


図6 改造後


カーソルは消えましたね。

ちなみに、AdjustCursor() という関数は、GameMain.cpp の中で宣言されています。


今回はこれでおしまい。



戻る