ホーム > デベロッパ > BREW プログラミング入門 > BREW のテキストコントロール > - 2 / 2 -

BREW のテキストコントロール - 2 / 2 -

SophiaFramework によるアプリ

最初の画面です。
テキストボックスに移ります。
テキストが編集されます。
ボタンが押されると、下の文字列をテキストコントロールの文字列に変更します。

テキストコントロールの配置

SophiaFramework では、 Window クラスに様々な GUI コンポーネントを配置できます。

テキストコントロールも SophiaFramework の GUI コンポーネントの一つです。 GUI コンポーネント、テキストコントロールは次のように配置します。

// コンストラクタ(ウィンドウ生成時に実行)
MyWindow::MyWindow(SFXRectangleConstRef _rect)
    : SFRTitleWindow(SFRApplication::GetInstance(), _rect, "TextCtlWindow")
      static_throws
{
    SFXAnsiString message("Text Box");
    SFXRectangle rect(GetContentWorld());

    SFRToolbox::RegisterManipulateHandler(this);

    // テキストコントロール
    _textcontrol = ::new SFRBrewTextControl(this,
        SFXRectangle(0, 0, rect.GetWidth(), (rect.GetHeight() - 70) / 2), message);

    // 最大文字数を設定
    _textcontrol->SetMaxSize(255);

    SFRButtonControlPtr button1(::new SFRButtonControl(this,
        SFXRectangle(10, (rect.GetHeight() - 70) / 2 + 10, 70, 25), "ボタン"));

    // button1を押したときのハンドラを登録
    button1->RegisterHandler(SREVT_CONTROL,
        HANDLER_BEFORE, HANDLER_FUNCTION(OnButtonControl1));

    rect.SetTop((rect.GetHeight() - 70) / 2 + 70);

    _label = ::new SFRLabelControl(this, rect, message);
    return;
}

テキストコントロールに関するイベント処理は、関数4 行目の SFRToolbox::RegisterManipulateHandler 関数を呼び出せば自動的に設定されます。

テキストの取得

ボタンが押されたときに、テキストコントロールから文字列を取得し、ラベルに設定します。

// ボタンが押されたときの処理
HANDLER_IMPLEMENT_VOIDCONTROL(MyWindow, OnButtonControl1, result, control)
{
    _label->SetTitle(_textcontrol->GetText());
    return;
}