如何取消绑定我绑定的事件处理程序,如下所示?解除绑定lambda事件处理程序
MyFrame::MyFrame()
{
Bind(wxEVT_COMMAND_MENU_SELECTED,
[](wxCommandEvent&) {
// Do something useful
},
wxID_EXIT);
}
非常感谢您的第一个答案。我已经添加了一些附加信息。
通过使用具体的Functor解除事件处理程序的可能性被记录并且工作正常,但是如果使用C++ 11 lambda样式绑定某些事件,则以后没有Functor availibale可以调用unbind方法。如果相应的wxEvtHandler
应该被破坏,这会造成麻烦。
有没有“窍门”。 。 。如果没有,我没有看到一个真正的用例绑定使用lambda仿函数。 希望我错了。 。 。
非常感谢
Hacki
的可能的复制[wxWidgets的:作为其触发事件解除绑定(http://stackoverflow.com/questions/18955287/wxwidgets-unbind-event-as-its-triggered) – CamFerry
@CamFerry,没有它是不。解绑定函数需要事件处理函数名称,并且这里没有带lambda的名称。它可能是C++ 11中的一些东西...... – Igor