我似乎已经关注了this example (found under "Defining Your Own Event Class"),我的代码编译并运行没有错误,但我没有在任何地方捕获事件。
代码:
class MyCustomEvent : public wxEvent
{
//... stuff here
};
wxDEFINE_EVENT(MY_CUSTOM_EVENT_1,MyCustomEvent);
以后我绑定事件:
Bind(MY_CUSTOM_EVENT_1, &MyApp::OnProcessCustom, this);
后来我抛出了那种类型的事件:
MyCustomEvent* eventCustom = new MyCustomEvent(MY_CUSTOM_EVENT_1);
eventCustom->SetEventObject(this);
this->QueueEvent(eventCustom); //this is MyApp
不幸的是,在抛出事件之后,它从未被OnProcessCustom捕获。
有什么想法吗?
注意:与this question类似,但不一样。
答案 0 :(得分:1)
您的代码看起来正确,因此问题可能出在您未展示的部分。请注意,如果您从MyApp方法调用它,则不需要将this
作为最后一个参数传递给Bind()
。
我还建议查看事件示例,它有定义自定义事件的工作代码(尽管使用wxCommandEvent
而不是自定义类,但您可以轻松修改它以使用您的类)。