我正在使用 wxMenu,并且想要一种处理事件的方法。我真的只需要处理单击菜单项时发生的事件的东西。具体来说,给定一个任意函数指针(形式为 void(*)(void)),我想让它在给定事件发生时调用该函数指针。
菜单不会提前知道,所以我理解的活动表已经出来了。
我找到了 Bind and Connect,但似乎都不起作用(另请参阅Connect)。
添加代码:
class Menu : public wxMenu {
public:
void handle_event(wxCommandEvent& event) {
volatile int i = 6; //to prevent this method being optimized out
//breakpoint here that never gets hit
//selecting a callback to call (based on event.GetID()) could go here
}
};
//Later, in a function (menu is instance of Menu)
menu->Connect(
wxEVT_COMMAND_MENU_SELECTED,
(wxObjectEventFunction)(&Menu::handle_event),
NULL,menu
);
//Also tried:
menu->Bind(wxEVT_COMMAND_MENU_SELECTED,&(Menu::handle_event),menu);