一、simplemenu.h
class SimpleMenu:public wxFrame
{
public:
SimpleMenu(const wxString& title);
protected:
void OnQuit(wxCommandEvent& event);
void OnContextMenu(wxContextMenuEvent& event);
wxMenu *popupMenu;
private:
wxDECLARE_EVENT_TABLE();
};
二、simplemenu.cpp
wxBEGIN_EVENT_TABLE(SimpleMenu,wxFrame)
EVT_CONTEXT_MENU(SimpleMenu::OnContextMenu)
wxEND_EVENT_TABLE();
SimpleMenu::SimpleMenu(const wxString& title)
:wxFrame(NULL,wxID_ANY,title,wxDefaultPosition,wxSize(280,180))
{
this->Centre();
}
void SimpleMenu::OnContextMenu(wxContextMenuEvent& event)
{
if(!popupMenu){
popupMenu= new wxMenu;
popupMenu->Append(wxID_NEW,"&New");
popupMenu->Append(wxID_OPEN,"&Open");
wxMenuItem *miExit = new wxMenuItem(menu, wxID_EXIT, "Quit\tCtrl+Q");
miExit->SetBitmap(wxBitmap("exit.png", wxBITMAP_TYPE_PNG));
popupMenu->Append(miExit);
}
PopupMenu(popupMenu);
}
void SimpleMenu::OnQuit(wxCommandEvent &event)
{
Close(true);
}
动态绑定
Bind(wxEVT_CONTEXT_MENU, SimpleMenu::OnContextMenu,this);