2012-02-01 4 views
0

私は、wxPanelを拡張するValCtrlというクラスを作成しました。各インスタンスは、wxCheckBox、wxSlider、およびwxSpinCtrlを管理します。私は、イベントをValCtrlのメソッドに動的にバインドしています。wxSpinCtrlがイベントを生成しない

wxSliderとwxCheckBoxのイベント処理が機能していますが、wxSpinCtrlに問題があり、ハンドラが呼び出されていません。プログラムがコンパイルされて実行され、ドキュメントに十分なヘルプが見つかりませんでした。何か案は?ここで

は私のインスタンス化されている。ここで

linkCheckBox = new wxCheckBox(this, wxID_ANY, stim->name, wxPoint(-1,-1), wxSize(linkCheckBoxSX, defaultS)); 

slider = new wxSlider(this, wxID_ANY, 0, 0, 100, wxPoint(-1,-1), wxSize(sliderSX, sliderSY), wxSL_HORIZONTAL); 
slider->SetRange(stim->minValue, stim->maxValue); 
slider->SetValue(stim->value); 

spinCtrl = new wxSpinCtrl(this, wxID_ANY, "0", wxPoint(-1,-1), wxSize(spinCtrlSX, spinCtrlSY)); 
spinCtrl->SetRange(stim->minValue, stim->maxValue); 
spinCtrl->SetValue(stim->value); 

は私のバインドされている。ここで

slider->Bind(wxEVT_SCROLL_THUMBTRACK, &ValCtrl::OnScroll, this); 
slider->Bind(wxEVT_SCROLL_CHANGED, &ValCtrl::OnScroll, this); 
spinCtrl->Bind(wxEVT_SPIN, &ValCtrl::OnSpin, this); 
spinCtrl->Bind(wxEVT_COMMAND_TEXT_ENTER, &ValCtrl::OnEntered, this); 
linkCheckBox->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &ValCtrl::OnCheck, this); 

は私のハンドラメソッドの宣言です:

void OnCheck(wxCommandEvent& event); 
void OnEntered(wxCommandEvent& event); 
void OnScroll(wxScrollEvent& event); 
void OnSpin(wxSpinEvent& event); 

答えて

2

ヘッダーを読み取り、wxEVT_COMMAND_SPINCTRL_UPDATEDが見つかりました。 2.9を使用していますが、これは2.8以降のwxSpinCtrlイベントのディスパッチとキャプチャの仕方が明らかに変わっています。

現在作業中です。修正は、他の好奇心をそそる当事者のためのものです。

spinCtrl->Bind(wxEVT_SPIN, &ValCtrl::OnSpin, this); 
spinCtrl->Bind(wxEVT_COMMAND_TEXT_ENTER, &ValCtrl::OnEntered, this); 

は変身:

spinCtrl->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &ValCtrl::OnSpin, this); 
関連する問題