海报设计 网站/百度人工客服24小时电话
这一次讲一讲菜单栏吧
先介绍下组成的三个成员
vxMenuBar:菜单栏,例如下图
vxMenu:菜单,例如下图
wxMenuItem:菜单个项
边贴代码边说明吧:
构建一个界面类,里面有这三种小伙伴。
class MyMenu : public wxFrame
{
public:MyMenu(const wxString & title);void OnQuit(wxCommandEvent &event);wxMenuBar *menubar;wxMenu *file;wxMenu *imp;wxMenuItem *quit;
};
详细看下面代码注释
MyMenu::MyMenu(const wxString & title):wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(280, 180))
{menubar = new wxMenuBar;file = new wxMenu;file->Append(wxID_ANY, wxT("&New")); //添加菜单各项 Newfile->Append(wxID_ANY, wxT("&Open"));//添加菜单各项 Openfile->Append(wxID_ANY, wxT("&Save"));//添加菜单各项 Savefile->AppendSeparator(); //分隔符 imp = new wxMenu;file->AppendSubMenu(imp, wxT("I&mport")); //添加子菜单 Import//子菜单中 有如下三个菜单个项imp->Append(wxID_ANY, wxT("Import newsfeed list..."));imp->Append(wxID_ANY, wxT("Import bookmarks..."));imp->Append(wxID_ANY, wxT("Import mail..."));//菜单个项quit = new wxMenuItem(file, wxID_EXIT, wxT("&Quit\tCtrl+Q"));file->Append(quit);menubar->Append(file, wxT("&File"));SetMenuBar(menubar);Connect(wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(MyMenu::OnQuit));//连接退出事件Centre();
}
最后贴出全部代码实现:
#include <wx/wx.h>class MyMenu : public wxFrame
{
public:MyMenu(const wxString & title);void OnQuit(wxCommandEvent &event);wxMenuBar *menubar;wxMenu *file;wxMenu *imp;wxMenuItem *quit;
};MyMenu::MyMenu(const wxString & title):wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(280, 180))
{menubar = new wxMenuBar;file = new wxMenu;file->Append(wxID_ANY, wxT("&New"));file->Append(wxID_ANY, wxT("&Open"));file->Append(wxID_ANY, wxT("&Save"));file->AppendSeparator(); //分隔符 imp = new wxMenu;file->AppendSubMenu(imp, wxT("I&mport"));imp->Append(wxID_ANY, wxT("Import newsfeed list..."));imp->Append(wxID_ANY, wxT("Import bookmarks..."));imp->Append(wxID_ANY, wxT("Import mail..."));quit = new wxMenuItem(file, wxID_EXIT, wxT("&Quit\tCtrl+Q"));file->Append(quit);menubar->Append(file, wxT("&File"));SetMenuBar(menubar);Connect(wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(MyMenu::OnQuit));Centre();
}
void MyMenu::OnQuit(wxCommandEvent &event)
{Close();
}class MyApp : public wxApp
{
public:virtual bool OnInit();
};bool MyApp::OnInit()
{MyMenu *menu = new MyMenu(wxT("My Menu"));menu->Show(true);return true;
}
IMPLEMENT_APP(MyApp)
快去实现吧。。。至于每一项的功能,某一期会讲得,敬请期待,谢谢。