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;
}
記事掲載プログラムのソースコード
SophiaFramework を使用して作成したソースコード

SFTextCtlApp41.zip (SophiaFramework 4.1)

















