    01: #include <wx/wx.h>
    02:
    03: const int ID_SAY_HELLO = 1000;
    04: const int ID_SAY_GOODBYE = 1001;
    05:
    06: /**
    07:    A frame with a simple menu and a text control.
    08: */
    09: class MenuFrame : public wxFrame
    10: {
    11: public:
    12:    /**
    13:       Constructs the menu and text control.
    14:    */
    15:    MenuFrame();
    16: private:
    17:    wxTextCtrl* text;
    18: };
    19:
    20: /**
    21:    An application with a frame that has a menu and text control.
    22: */
    23: class MenuApp : public wxApp
    24: {
    25: public:
    26:    /**
    27:       Constructs the frame.
    28:    */
    29:    MenuApp();
    30:    /**
    31:       Shows the frame.
    32:       @return true
    33:    */
    34:    virtual bool OnInit();
    35: private:
    36:    MenuFrame* frame;
    37: };
    38:
    39: DECLARE_APP(MenuApp)
    40:
    41: IMPLEMENT_APP(MenuApp)
    42:
    43: MenuFrame::MenuFrame()
    44:    : wxFrame(NULL, -1, "MenuFrame")
    45: {
    46:    text = new wxTextCtrl(this, -1, "",
    47:       wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
    48:
    49:    // initialize menu
    50:    wxMenu* menu = new wxMenu();
    51:    menu->Append(ID_SAY_HELLO, "Hello");
    52:    menu->Append(ID_SAY_GOODBYE, "Goodbye");
    53:
    54:    // add menu to menu bar
    55:    wxMenuBar* menu_bar = new wxMenuBar();
    56:    SetMenuBar(menu_bar);
    57:    menu_bar->Append(menu, "Say");
    58: }
    59:
    60: MenuApp::MenuApp()
    61: {
    62:    frame = new MenuFrame();
    63: }
    64:
    65: bool MenuApp::OnInit()
    66: {
    67:    frame->Show(true);
    68:    return true;
    69: }