wxFormBuilderを使用してwxwidgetsフォームを作成しました。オブジェクトでマウスホイール イベントをスローしようとしています。イベントがスローされないのが問題なので、何か追加設定があればお願いしたいです。オブジェクトには、このようなイベント テーブルがあります
BEGIN_EVENT_TABLE(MyObj, wxScrolledWindow)
EVT_MOUSEWHEEL(MyObj::OnMouseWheel)
END_EVENT_TABLE();
そして、次のように初期化されます。
myObjInstance = new MyObj(this, ID_MYOBJ, wxPoint(10, 10), wxSize(30,30), 0);
wxFormBuilder で、GUI からイベントを追加すると、この出力を生成する関数 Connectが使用されていることに気付きました
myObjInstance ->Connect( wxEVT_MOTION, wxMouseEventHandler( MyFrame::TestMouseOnverTheEdit ), NULL, this );
しかし、イベント ハンドラー関数 OnMouseWheel がクラス MyObj にあり、保護されているため、使用できません。
また、 wxDev-C++でこのオブジェクトとイベントを使用してフレームを作成したところ、イベントがスローされました。違いは、wxFormBuilder で作成されたフォームには複数のサイザーとパネルがあるのに対し、wxDev-C++ のフォームには何もないことです。同様の問題が解決されましたが、どうすればよいかまだわかりません。ありがとう。
編集:ハンドラーの署名:
void OnMouseWheel(wxMouseEvent & AwxEvent);