![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
文字列が入力可能なテキストコントロールを設置します。
図のようなテキストコントロールを MyWindow に設置します。前節で作成したコードに以下のコードを加えます。

宣言
SFMTYPEDEFCLASS(MyWindow)
class MyWindow : public SFRTitleWindow {
...
SFRBrewTextControlPtr _textcontrol;
};
コンストラクタ
MyWindow::MyWindow(Void) : SFRTitleWindow(SFRApplication::GetInstance(),
SFXRectangle(20, 20, 200, 250), "my window") static_throws
{
...
//*** ↓を追加する
// テキストコントロール
// "hello textbox" は初期値
_textcontrol = new SFRBrewTextControl(
this, SFXRectangle(10, 190, 150, 28), "hello textbox");
// 最大文字数を設定
_textcontrol->SetMaxSize(255);
// テキストコントロール上でセレクトキーを押したときに
// 入力モードに移るようにセット
// (SelectHandler はSophiaFramework が用意しているセレクトキー用のハンドラ)
if (static_try()) {
static_throw(
RegisterHandler(
SFEVT_KEY, AVK_SELECT, HANDLER_AFTER,
HANDLER_FUNCTION(SelectHandler)));
}
}
入力したテキストは GetText() メンバ関数で取得します。
// button3 のハンドラ HANDLER_IMPLEMENT_VOIDCONTROL(MyWindow, OnButtonControl3) { ... //*** ↓を追加する // GetText() でテキストを取得します。 // <xref linkend="class.SFXWideString"/> 型で文字列を返すので、 // それを <xref linkend="class.SFXAnsiString"/> 型に変換します。 SFXAnsiString string = static_cast<SFXAnsiString>(_textcontrol->GetText()); // テキストを表示 TRACE("textcontrol: %s", string.GetCString()); //*** ↑ここまで追加 }


|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|