+ "About Hello World", wxOK | wxICON_INFORMATION );
+}
+@endcode
+
+The implementation of custom menu command handler may perform whatever task
+your program needs to do, in this case we will simply show a message from it as
+befits a hello world example:
+@code
+void MyFrame::OnHello(wxCommandEvent& event)
+{
+ wxLogMessage("Hello world from wxWidgets!");
+}
+@endcode
+
+Here is the entire program that can be copied and pasted:
+@code
+// wxWidgets "Hello world" Program
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include <wx/wxprec.h>
+
+#ifndef WX_PRECOMP
+ #include <wx/wx.h>
+#endif
+
+class MyApp: public wxApp
+{
+public:
+ virtual bool OnInit();
+};
+
+class MyFrame: public wxFrame
+{
+public:
+ MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
+
+private:
+ void OnHello(wxCommandEvent& event);
+ void OnExit(wxCommandEvent& event);
+ void OnAbout(wxCommandEvent& event);
+
+ wxDECLARE_EVENT_TABLE();
+};
+
+enum
+{
+ ID_Hello = 1
+};
+
+wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
+ EVT_MENU(ID_Hello, MyFrame::OnHello)
+ EVT_MENU(wxID_EXIT, MyFrame::OnExit)
+ EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
+wxEND_EVENT_TABLE()
+
+wxIMPLEMENT_APP(MyApp);
+
+bool MyApp::OnInit()
+{
+ MyFrame *frame = new MyFrame( "Hello World", wxPoint(50,50), wxSize(450,340) );
+ frame->Show( true );
+ return true;
+}
+
+MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
+ : wxFrame(NULL, wxID_ANY, title, pos, size)
+{
+ wxMenu *menuFile = new wxMenu;
+ menuFile->Append(ID_Hello, "&Hello...\tCtrl-H",
+ "Help string shown in status bar for this menu item");
+ menuFile->AppendSeparator();
+ menuFile->Append(wxID_EXIT);
+
+ wxMenu *menuHelp = new wxMenu;
+ menuHelp->Append(wxID_ABOUT);
+
+ wxMenuBar *menuBar = new wxMenuBar;
+ menuBar->Append( menuFile, "&File" );
+ menuBar->Append( menuHelp, "&Help" );
+
+ SetMenuBar( menuBar );
+
+ CreateStatusBar();
+ SetStatusText( "Welcome to wxWidgets!" );
+}
+
+void MyFrame::OnExit(wxCommandEvent& event)
+{
+ Close( true );
+}
+
+void MyFrame::OnAbout(wxCommandEvent& event)
+{
+ wxMessageBox( "This is a wxWidgets' Hello world sample",
+ "About Hello World", wxOK | wxICON_INFORMATION );
+}
+
+void MyFrame::OnHello(wxCommandEvent& event)
+{
+ wxLogMessage("Hello world from wxWidgets!");