wxwidgets连接多个功能

时间:2015-03-10 13:05:04

标签: c++ wxwidgets

我正在尝试将按钮连接到不同类中的两个不同功能。问题是,每当我连接第二个函数时,与第一个函数的连接似乎都消失了

windowpointer->Connect( wxbuttonID, wxEVT_COMMAND_BUTTON_CLICKED,
(wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) &class1::func1, NULL, (wxEvtHandler*) myclass1);

windowpointer->Connect( wxbuttonID, wxEVT_COMMAND_BUTTON_CLICKED,
(wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) &class2::func2, NULL, (wxEvtHandler*) myclass2);

我很感激任何解决这个问题的建议

2 个答案:

答案 0 :(得分:3)

找到的第一个事件处理程序首先获取事件,如果它不处理event.Skip()作为其处理的一部分,则不会调用其他处理程序。因此,如果要为事件使用多个处理程序,则需要确保事件处理程序调用{​​{1}}。有关详细信息,请参阅the event handling processing overview

另请注意,在多个位置处理命令事件(例如wxEvent::Skip())通常是一个坏主意,即让程序员和用户都感到困惑。你希望按钮点击只能处理一次,虽然你可以有多个处理程序,但它不太可能是个好主意。

答案 1 :(得分:0)

第二个Connect调用将替换第一个。

可能有一个方法(比如onXXXButtonClicked)调用class1 :: func1和class2 :: func2,并将按钮连接到onXXXButtonClicked。