我已经使用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);