wxWidgets
チェックボックスを表示させてみる
(2010. 5. 4)
チェックボックスはトグルボタン同様に一度押すとON、もう一回押すとOFFになるようなボタンです。
@ チェックボックスクラス
チェックボックスクラスはwxCheckBoxです。この使い方はwxToggleButtonクラスに似ています。前章のフレームにチェックボックスを追加しました:
TestFrame::TestFrame(const wxString &title, const wxSize &size) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, size) { // パネル wxPanel *panel = new wxPanel(this, wxID_ANY); // 中略... // チェックボックス checkBox = new wxCheckBox(panel, CheckBox2StateID, ("CheckBox2State"), wxPoint(20, 80), wxDefaultSize, wxCHK_2STATE); Connect(CheckBox2StateID, wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(TestFrame::OnCheckBox2State)); Center(); } // チェックボタン2Stateクリック void TestFrame::OnCheckBox2State(wxCommandEvent& event) { int a = 100; } |
上の太文字の2行を付け足すだけでチェックボックスが表示します。
コンストラクタの意味はwxButtonクラスとまったく同じですが、最後にスタイルを決めるフラグがあります。wxCHK_2STATEにするとON/OFFの2状態のチェックボックスが作成されます。wxCHK_3STATEに設定するとON/OFF/UNDETERMINEDの3状態があるチェックボックスが作成されます。
チェックボックスが押された時にはwxEVT_COMMAND_CHECKBOX_CLICKEDが発生するので、上の例ではそれをTestFrame::OncheckBox2Stateハンドラで受けています。これだけで、次のようなチェックボタンが表示されました:
楽々過ぎて参りましたです(-_-;
A クリックイベント
Toggleボタンと同様に、上のOnCheckBoxハンドラが呼び出された時、引数に渡されているeventオブジェクトからチェックボックスの状態を得ることができます。チェックした時にはwxCommandEvent::m_commandIntメンバに1が、チェックを外した時には0が入ってきます。