【问题标题】:wxWidgets 2.9 custom eventswxWidgets 2.9 自定义事件
【发布时间】:2011-05-01 13:16:25
【问题描述】:

我似乎关注了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类似,但不一样。

【问题讨论】:

    标签: c++ events wxwidgets


    【解决方案1】:

    您的代码看起来正确,因此问题可能出在您未显示的部分。请注意,如果您从 MyApp 方法调用它,则不需要将 this 作为最后一个参数传递给 Bind()

    我还建议查看事件示例,它具有定义自定义事件的工作代码(尽管使用 wxCommandEvent 而不是自定义类,但您可以轻松修改它以改用您的类)。

    【讨论】:

    • 确实错误一定在周围的代码中。不知何故,我能够得到一个更复杂的例子,模板化的事件类工作,但这仍然是错误的。不幸的是,没有时间真正找出问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多