Ich hatte versucht, DECLARE_EVENT_TABLE() & & Connect(), aber es funktioniert nicht.Mein Code einfach so.Wie es funktioniert zu machen?Wie wird das MENU_SELECTED-Ereignis in einer geerbten wxMenuBar beantwortet?
//.h
class MainFrameMenuBar :public wxMenuBar
//...
private:
DECLARE_EVENT_TABLE();
};
/...
//.cpp
BEGIN_EVENT_TABLE(MainFrameMenuBar, wxMenuBar)
EVT_MENU(XRCID("ID_MENU_FIGURE"), MainFrameMenuBar::onMenuItemFigure)
END_EVENT_TABLE()
MainFrameMenuBar::MainFrameMenuBar(wxWindow* parent)
{
wxXmlResource::Get()->LoadMenuBar(parent,wxT("ID_MAIN_MENUBAR"));
//int id = XRCID("ID_MENU_FIGURE");
//Connect(id, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrameMenuBar::onMenuItemFigure), NULL, this);
}
void MainFrameMenuBar::onMenuItemFigure(wxCommandEvent& event)
{
printf("abc");
}
Ich benutze Version 3.1.0. Gibt es etwas anderes falsch? – youzhiwan
Nein, ich sehe in dem hier gezeigten Code nichts falsch, also weiß ich nicht, was falsch sein könnte. Wie immer, wenn Sie versuchen könnten, das Problem in einem vorhandenen wxWidgets-Beispiel wie dem [minimal sample] (https://github.com/wxWidgets/wxWidgets/tree/v3.1.0/samples/minimal/minal.cpp) zu reproduzieren. , könnte es das Problem eingrenzen, z wir würden zumindest wissen, ob es mit der Verwendung von XRC oder unabhängig davon zu tun hat usw. –