4)コントロールの中で積極的な入力支援をしてくれる物と言えばエディットボックスです。アプリでもWebでも世の中エディットボックス祭りです(笑)。wxWidgetsでは簡単にエディットボックスを出す事ができます。エディットボックスクラスエディットボックスはwxTextCtrlクラスが担います。コンストラクタで渡した初期文字列が表示されています。エディットボックスで必要なのは入力した情報を取り出す仕組みです。エディットボックスに入力した情報をリストに追加する場合は、入力確定を捉えて文字列をリストに渡す必要があります。入力確定を捉えるエディットボックスの入力確定には「Enterキーを押す」と「フォーカスを外す」があります。このうちフォーカスアウトはちょっとまだ調べがついていませんが、Enter確定は最初から用意されています。Enter確定時にエディットボックスはwxEVT_COMMAND_TEXT_ENTERイベントを発行します。これをハンドラで捉えればOKです。文字列を設定・取得する入力した文字列を得るにはwxTextCtrl::GetValメソッドを用います。逆にテキストを設定するにはSetValueメソッドを用います。直感的でわかりやすいインターフェイスですね。);テキストコントロールには他にも色々なメソッドが提供されていますが、とりあえず表示出来て文字列の設定・取得ができればこのコントロールは使えたも同然です。フォーカスアウトを捉える�Aで「フォーカスアウトが調べがつかない」と書きましたが、その後大変有力な情報をWLK様より頂きました。ありがとうございます!!フォーカスアウトはデフォルトでは捉えられないのですが、エディットボックスの派生クラスを作ると解決できる事がわかりました。以下にその方法を記述します。wxWidgetsのウィンドウ自体はフォーカスが無くなった時にEVT_KILL_FOCUSというメッセージを受け取る事ができます。エディットボックス(wxTextCtrl)もウィンドウなのでこのメッセージを受け取れます。このメッセージを受けた時に自分の親ウィンドウに対して「フォーカスが切れたよ〜」と教えてあげればいいんです。-1)#endifコンストラクタはwxTextCtrlのそれと同じにします。フォーカスが切れた時に呼ばれるのがOnKillFocusメソッドです。DECLARE_EVENT_TYPEマクロは新しいイベントを登録するためのマクロです。このクラスを使う親ウィンドウはこのイベント名を受けて「TextCtrlのフォーカスが切れた!」と知る事になります。GetId());GetParent()->ProcessEvent(newEvent);}event.Skip();}実装では、最初にDEFINE_EVENT_TYPEマクロで宣言部で定義したEVT_TEXT_CTRL_KIL_FOCUSイベントを実際に実装しています。続いてイベントとハンドラを結びつけています。フォーカスキルメソッドの中がポイントです。このメソッドはエディットボックスのフォーカスがはずれた時に呼び出されます。自分の親がいるかをチェックします。いなければ何もしません。親がいた場合、その親に対してイベントを発行します。そのイベントを作っているのが太文字部分です。wxCommandEventの第1引数はイベント名、第2引数はそのイベントを発行した人のIDとなります。作ったイベントを親のProcessEventメソッドを使って飛ばします。このクラスを使う親の方は次のとおりです。{}先程作成したヘッダーをインクルードして、Commandイベントとして上の太文字のようにイベントとハンドラを結びつけます。ここでEVT_TEXT_CTRL_KILL_FOCUSが出てくるわけです。コンストラクタの中ではKillFocusedTextCtrlオブジェクトを作ります。これは�Aとほぼ一緒ですね。後はハンドラであるOnKillFocusメソッドを設けるだけです。これでエディットボックスのフォーカスが切れる度にこのメソッドが呼ばれます。複数のエディットボックスがある場合は都度ハンドラを作るか、同じハンドラを呼ぶようにしてevent内に渡されているIDで識別します。(http://www.or2.fiberbit.net/ysfactory/a1/MinGWwxWidgets/MinGW-wxWidgets-SlideValue.html)。