wxWidgets C++自定义事件无法传播问题求助
wxWidgets C++自定义事件无法传播问题求助
各位好,我在wxWidgets中自定义了一个用于传递Card类实例的事件,但目前遇到了事件无法正常传播到目标窗口的问题,想请大家帮忙排查下问题所在。
我先贴一下目前的代码实现:
自定义CardEvent类的实现
#include "card.hpp" class CardEvent: public wxEvent { public: CardEvent(wxEventType eventType, int winid, const Card &carddata) : wxEvent(winid, eventType), m_card(carddata) { } // 访问器方法 Card GetCard() const { return m_card; } // 实现基类的纯虚函数 virtual wxEvent *Clone() const { return new CardEvent(*this); } private: const Card m_card; }; wxDECLARE_EVENT(EVT_CARDADDED, CardEvent);
在MainWindow中的事件定义
wxDEFINE_EVENT(EVT_CARDADDED, CardEvent);
MainWindow中绑定事件
this->Bind(EVT_CARDADDED, &MainWindow::OnCardAdded, this);
在另一个wxPanel子类中发送事件
void BlockCardPanel::OnClickAddCard(wxCommandEvent &event) { // 这里是我发送事件的代码 Card newCard = GetCurrentCard(); // 假设这是获取要传递的Card实例 CardEvent cardEvent(EVT_CARDADDED, this->GetId(), newCard); // 我尝试用ProcessEvent或者QueueEvent发送,但都没触发目标回调 this->ProcessEvent(cardEvent); }
我是照着wxWidgets的文档步骤来写的,但发送事件后,MainWindow里的OnCardAdded回调始终没触发,有没有大佬能帮我看看哪里出问题了?比如事件发送的方式不对,还是自定义事件的实现有遗漏的细节?
备注:内容来源于stack exchange,提问作者Infofly
相关产品推荐
相关产品推荐

