-    EVT_RADIOBOX(ID_RADIO_ORIENT, MyFrame::OnCheckOrRadioBox)
-    EVT_CHECKBOX(ID_CHK_SHOWIMAGES, MyFrame::OnCheckOrRadioBox)
-
-    EVT_BUTTON(ID_BTN_ADD_PAGE, MyFrame::OnButtonAddPage)
-    EVT_BUTTON(ID_BTN_INSERT_PAGE, MyFrame::OnButtonInsertPage)
-    EVT_BUTTON(ID_BTN_DELETE_CUR_PAGE, MyFrame::OnButtonDeleteCurPage)
-    EVT_BUTTON(ID_BTN_DELETE_LAST_PAGE, MyFrame::OnButtonDeleteLastPage)
-    EVT_BUTTON(ID_BTN_NEXT_PAGE, MyFrame::OnButtonNextPage)
-    EVT_BUTTON(wxID_OK, MyFrame::OnButtonExit)
-
-    EVT_UPDATE_UI(ID_BTN_DELETE_CUR_PAGE, MyFrame::OnUpdateUIBtnDeleteCurPage)
-    EVT_UPDATE_UI(ID_BTN_DELETE_LAST_PAGE, MyFrame::OnUpdateUIBtnDeleteLastPage)
-
-    EVT_NOTEBOOK_PAGE_CHANGED(ID_NOTEBOOK, MyFrame::OnNotebook)
-    EVT_NOTEBOOK_PAGE_CHANGING(ID_NOTEBOOK, MyFrame::OnNotebook)
+    // File menu
+    EVT_MENU_RANGE(ID_BOOK_NOTEBOOK, ID_BOOK_MAX, MyFrame::OnType)
+    EVT_MENU_RANGE(ID_ORIENT_DEFAULT, ID_ORIENT_MAX, MyFrame::OnOrient)
+    EVT_MENU(ID_SHOW_IMAGES, MyFrame::OnShowImages)
+    EVT_MENU(ID_MULTI, MyFrame::OnMulti)
+    EVT_MENU(wxID_EXIT, MyFrame::OnExit)
+
+    // Operations menu
+    EVT_MENU(ID_ADD_PAGE, MyFrame::OnAddPage)
+    EVT_MENU(ID_INSERT_PAGE, MyFrame::OnInsertPage)
+    EVT_MENU(ID_DELETE_CUR_PAGE, MyFrame::OnDeleteCurPage)
+    EVT_MENU(ID_DELETE_LAST_PAGE, MyFrame::OnDeleteLastPage)
+    EVT_MENU(ID_NEXT_PAGE, MyFrame::OnNextPage)
+
+    // Book controls
+#if wxUSE_NOTEBOOK
+    EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnNotebook)
+    EVT_NOTEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnNotebook)
+#endif
+#if wxUSE_LISTBOOK
+    EVT_LISTBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnListbook)
+    EVT_LISTBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnListbook)
+#endif
+#if wxUSE_CHOICEBOOK
+    EVT_CHOICEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnChoicebook)
+    EVT_CHOICEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnChoicebook)
+#endif
+#if wxUSE_TREEBOOK
+    EVT_TREEBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnTreebook)
+    EVT_TREEBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnTreebook)
+
+    EVT_MENU(ID_ADD_SUB_PAGE, MyFrame::OnAddSubPage)
+    EVT_MENU(ID_ADD_PAGE_BEFORE, MyFrame::OnAddPageBefore)
+    EVT_UPDATE_UI_RANGE(ID_ADD_PAGE_BEFORE, ID_ADD_SUB_PAGE,
+                            MyFrame::OnUpdateTreeMenu)
+#endif
+#if wxUSE_TOOLBOOK
+    EVT_TOOLBOOK_PAGE_CHANGED(wxID_ANY, MyFrame::OnToolbook)
+    EVT_TOOLBOOK_PAGE_CHANGING(wxID_ANY, MyFrame::OnToolbook)
+#endif