ホーム < ゲームつくろー! < IKD備忘録

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が入ってきます。