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

12.4. サンプル コード

12.4.1. リスト表示

図 12.14. リスト表示

リスト表示

例 12.49. リスト表示

SFXRectangle rectangle(30, 50, 120, 150);
SFXGraphicsPtr graphics = SFXGraphics::GetInstance();

// 外枠を描画する : SFXRGBColor で色を指定する
graphics->DrawRectangle(rectangle, SFXRGBColor(0x00, 0x00, 0x00, 0x00));
// 外枠を上下左右 1 ずつ縮小する
rectangle.Deflate(1, 1);
// 高さをフォントの高さに設定する
rectangle.SetHeight(graphics->GetFontHeight());

// リストに表示する文字列
SFXAnsiString stringArray[] = {"C++", "java", "perl", "ruby", "python", "haskell"};

SInt32 i;
for (i = 0; i < lengthof(stringArray); ++i) {
    if (i % 2 == 0) { 
        // 奇数行のとき
        // 塗りつぶした長方形を描画する
        graphics->FillRectangle(rectangle, SFXRGBColor(0xFF, 0xAA, 0xBB, 0x00));
    }
    else { 
        // 偶数行のとき
        // 塗りつぶした長方形を描画する
        graphics->FillRectangle(rectangle, SFXRGBColor(0xDD, 0xDD, 0xFF, 0x00));
    }
    // テキストを描画する : 場所を SFXRectangle で指定する
    graphics->DrawText(stringArray[i], rectangle, SFXRGBColor(0x00, 0x00, 0x00, 0x00));

    // 長方形を下に移動する
    rectangle.AddY(rectangle.GetHeight() + 2);
}
[Note] 複数の描画

長方形を移動する関数 (SFXRectangle::AddY 関数) を for 文の中で使うことで、 複数の同じサイズの長方形の描画をシンプルに記述できます。

12.4.2. レスポンダの配置

図 12.15. レスポンダの配置

レスポンダの配置

例 12.50. レスポンダの配置

SFXRectangle rectangle(20, 40, 100, 0);

// 長方形の高さをフォントの高さに設定する
rectangle.SetHeight(SFXGraphics::GetFontHeight(AEE_FONT_NORMAL));

// ボタンを作成する
new SFRButtonControl(this, rectangle, "button1");

// 右に 30 ピクセル、下に 40 ピクセル移動する
rectangle.Offset(30, 40);

// ラベルを作成する
new SFRLabelControl(this, rectangle, "label1");

// 左に 30 ピクセル、下に 40 ピクセル移動する
rectangle.Offset(-30, 40);

// ボタンを作成する
new SFRButtonControl(this, rectangle, "button2");

// 幅を 30 ピクセル広げ、Y 座標の値に 40 ピクセルを加算し、Y 軸方向に上下 5 ピクセルそれぞれ広げる
rectangle.AddWidth(30).AddY(40).Inflate(0, 5);

// テキストボックスを作成する
new SFREditboxControl(this, rectangle, "textbox");
[Note] 注意

レスポンダの位置や移動、サイズ変更は SFXRectangle クラスのメンバ関数を使って指定します。