#include<wx/wx.h>
#include<wx/menu.h>
class SubMenu:public wxFrame
{
public:
SubMenu(const wxString& title);
void OnQuit(wxCommandEvent & event);
wxMenuBar *menubar;
wxMenu *file;
wxMenu *imp;
wxMenuItem *quit;
};
SubMenu::SubMenu(const wxString& title)
:wxFrame(NULL,wxID_ANY,title,wxDefaultPosition,wxSize(280,180))
{
menubar=new wxMenuBar;
file=new wxMenu;
imp=new wxMenu;
file->Append(wxID_ANY,wxT("&New"));
file->Append(wxID_ANY,wxT("&Open"));
file->Append(wxID_ANY,wxT("&Save"));
file->AppendSeparator();//加入一条分割线
imp->Append(wxID_ANY,wxT("Import newfeed list..."));
imp->Append(wxID_ANY,wxT("Import bookmarks..."));
imp->Append(wxID_ANY,wxT("Import mail..."));
file->AppendSubMenu(imp,wxT("&Import"));//imp作为file子菜单
quit=new wxMenuItem(file,wxID_EXIT,wxT("&Quit\tCtrl+Q"));
file->Append(quit);//Append()的另一种重载形式,共4种
menubar->Append(file,wxT("&File"));
SetMenuBar(menubar);
Connect(wxID_EXIT,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(SubMenu::OnQuit));
Centre();
}
void SubMenu::OnQuit(wxCommandEvent& WXUNUSED(event))
{
Close(true);
}
class MyApp:public wxApp
{
public:
virtual bool OnInit();
};
IMPLEMENT_APP(MyApp)
bool MyApp::OnInit()
{
SubMenu *smenu=new SubMenu(wxT("SubMenu"));
smenu->Show(true);
return true;
}
运行结果: