前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework 4.1

4.5. カスタマイズ

カスタマイズ前

画面には何も表示されません。セレクト キーが押された時、アプリは終了します。

図 4.1. カスタマイズ前の画面

カスタマイズ前の画面

カスタマイズ

SFC アプリでは、キー ハンドラの中から画面を描画する Draw 関数を呼び出します。

また、画面を更新するコード "graphics->Update();" が必要です。

例 4.6. 画面を描画する Draw 関数

Void Draw(Void)
{
    // SFXGraphics インスタンスの取得
    SFXGraphicsPtr graphics = SFXGraphics::GetInstance();

    // 画面を白色で塗りつぶす
    // SFXGraphics::GetDeviceRectangle() で画面全体 ( 長方形 ) を取得する
    // SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) は白色を表す( 左から R、G、B、アルファ値 )
    graphics->FillRectangle(SFXGraphics::GetDeviceRectangle(),
                            SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00));

    // 画面に "Hello World" 文字列を描画する
    graphics->DrawText("Hello World", 
                       SFXGraphics::GetDeviceRectangle(),
                       SFXRGBColor(0x00, 0x00, 0x00, 0x00));

    // GUI フレームワークを使わないアプリでは必ず画面を更新する
    graphics->Update();
}

"1" キーが押された場合、Draw 関数が呼ばれるようにキー ハンドラをカスタマイズします。

例 4.7. キー ハンドラ OnKey() のカスタマイズ

// キー ハンドラ
Bool HelloWorld::OnKey(UInt16 key)
{
    // キーイベントの処理
    switch (key) {
        case AVK_SELECT: // セレクトキーが押されたとき
            Terminate(); // アプリを終了する
            return true;
        //*** 太字が追加部分
        case AVK_1:      //  1 キーが押されたとき
            Draw();          //  "Hello World" 文字列を描画する
            return true; 
    }
    return false;
}

カスタマイズ後

"1" キーが押されると、画面はクリアされ、文字列 "Hello World" が描画されます。

図 4.2. カスタマイズ後の画面

カスタマイズ後の画面