void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
- void OnPopupMenu(wxCommandEvent& event);
- void OnRightDown(wxMouseEvent& event);
-
private:
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE()
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
EVT_MENU(Minimal_About, MyFrame::OnAbout)
-
- EVT_MENU_RANGE(Minimal_Test1, Minimal_Test2, MyFrame::OnPopupMenu)
-
- EVT_RIGHT_DOWN(MyFrame::OnRightDown)
END_EVENT_TABLE()
// Create a new application object: this macro will allow wxWindows to create
wxMessageBox("This is a minimal sample\nA second line in the message box",
"About Minimal", wxOK | wxICON_INFORMATION, this);
}
-
-void MyFrame::OnPopupMenu(wxCommandEvent& event)
-{
- wxString str;
- str.Printf("Test%d clicked.", event.GetId() == Minimal_Test1 ? 1 : 2);
- SetStatusText(str, 1);
-}
-
-void MyFrame::OnRightDown(wxMouseEvent& event)
-{
- class MyMenu : public wxMenu
- {
- public:
- MyMenu()
- {
- Append(Minimal_Test1, "Test&1");
- AppendSeparator();
- Append(Minimal_Test2, "Test&2");
- }
-
- ~MyMenu() { printf("menu destroyed"); }
- } *menu = new MyMenu;
-
- PopupMenu(menu, event.GetX(), event.GetY());
-}