フルスクリーン・モード用のウィンドウを生成する

ウィンドウは、ウィンドウ・クラスを元に生成される。ここでは、既に作成済みのウィンドウ・クラスを使ってフルスクリーン・モードで使用するウィンドウを生成する方法を紹介する。

フルスクリーン・モードで使用するウィンドウの生成

フルスクリーンの場合、利用したい解像度そのままのサイズでウィンドウを生成すればよい。サンプルプログラムでは、プログラムの最初で次のように指定している。

#define SCREEN_WIDTH	640	// ウィンドウの幅
#define SCREEN_HEIGHT	480	// ウィンドウの高さ

この設定を使ってウィンドウを生成するには、次のように記述してCreateWindow関数を実行すればよい。

// ウィンドウクラスの登録ができたので、ウィンドウを生成する
hWnd = CreateWindow(
    szWinName,             // ウィンドウクラスの名前
    szWinTitle,            // ウィンドウタイトル
    WS_VISIBLE | WS_POPUP, // ウィンドウスタイル(ポップアップウィンドウを作成)
    0,                     // ウィンドウの左角X座標
    0,                     // ウィンドウの左角Y座標
    SCREEN_WIDTH,          // ウィンドウの幅
    SCREEN_HEIGHT,         // ウィンドウの高さ
    NULL,                  // 親ウィンドウ(なし)
    NULL,                  // メニュー(なし)
    hThisInst,             // このプログラムのインスタンスのハンドル
    NULL                   // 追加引数(なし)
);

フルスクリーン・モードの場合、ウィンドウが常に上に来ていることが望ましく、割り込みが入っても表に出たままにしておきたい。そのため、ウィンドウスタイルをポップアップウィンドウに設定し、常にアクティブになるようにする(WS_VISIBLE | WS_POPUP)。

上記修正(実際はウィンドウスタイルの変更のみ)を行い、プログラムを実行すると、640×480のサイズで一切の装飾の無いウィンドウが表示される。このウィンドウにDirectX Graphicsを使ってフルスクリーン・モードの指定を行うことにより、640×480のウィンドウが全画面表示されるようになる。

ウィンドウ生成後の処理

以上で、フルスクリーン・モード用のウィンドウの生成は完了した。作成したウィンドウを表示するには、ShowWindow関数を実行すればよい。

ShowWindow(hWnd, nWinMode); // ウィンドウを表示

ただし、DirectX Graphicsを利用したアプリケーションを作成する場合、Windows標準の描画ルーチンが呼ばれないようにしておく必要がある。これは、次のように指定すればよい。

ValidateRect(hWnd, 0);		// WM_PAINTが呼ばれないようにする

BACK(【復習】アプリケーションの初期化とウィンドウの生成) NEXT(ウィンドウ・モード用のウィンドウを生成する)