4)wxWidgetsでウィンドウを表示させることができました。簡単にできるのが凄い!で、次はウィジットの代表である「ボタン」を設置してみます。これも簡単みたいですよ。ちなみに、今回はこちらを参照しました。ボタン表示フレーム今回はダイアログのように別ウィンドウ上にボタンを配置するプログラムです。&event);};これがヘッダーです。TestFrameという独自のフレームクラスをwxFrameから派生させています。コンストラクタはタイトル名とフレームのサイズを渡すようにしています。メンバメソッド(ハンドラ)はとりあえず「ボタンを押すとフレームを終了」という事でOnQuitメソッドを新設。wxCommandEventHandler(TestFrame::OnQuit));button->SetFocus();Center();}宣言時初期化部分で親クラスであるwxFrameクラスに必要な引数を渡します。これは前章のウィンドウ作成と同じですね。次に新しいwxPanelというクラスが出てきました。placed.(Panelはコントロールが置かれるウィンドウです)」とあります。これがボタンとかリストとか色々なウィジットの土台となるウィンドウのようです。パネル作成時には親となるフレーム(上の場合はthis)と固有IDを渡します。上では第2引数にwxID_ANYというIDが渡されています。これは実はデフォルト引数でして省略ができます。省略すると適当なIDが振られると思われます。続いてボタンウィジット(wxButton)を作成します。wxButtonのコンストラクタでは親、ウィジット識別ID、表記文字そして位置を指定しています。さきほど作ったパネルが土台となるので親として第1引数に渡しています。wxID_EXITはwxWidgetsが用意する共通IDかな?位置は親基点かと思います。続くConnectメソッドはウィジットと発生するイベントを結合する大切なメソッドです。今回は「ボタンが押されたら終了する」という動作を考えています。第1引数がウィジットの固有IDで、第2引数がそのウィジットが発生するイベントかなと思います。上の場合、wxID_EXITが割り振られたボタンが押されるとwxEVT_COMMAND_BUTTON_CLICKEDが発生し、そのイベントを第3引数で指定したメソッドが受けるという事になります。これ、wxWidgetsを使う側では上のようにしれっと書けていますが、元ソースを辿っていくと裏ではそうとうに色々と頑張っています。いう設計は勉強になりますね。後はボタンのフォーカス許可(SetFocusメソッド)を設定しています。ボタンをメインフレームへでは、以上のように作成したボタンクラスを早速メインフレーム上に配置してみます。true;}上は前章のウィンドウ表示テストプログラムのOnInitメソッド内を変更したものです。newしてShowするだけなのですから異常に簡単ですよね!さ、実行です:ご〜きげ〜ん(^-^)/。C++でボタンひとつ出すのも中々大変なのですが、そういうのが一切いらないのは凄いなぁ〜。これならばC++上でGUIをバリバリ使ったツールを作れます!望んでいたのはこういうのですよ〜。よし、しばらくは色々な基本ウィジットを表示させてみよう。