今天我们写一个helloworld
首先,在gui.h中引用aboutdlg.h
#include <wx/aboutdlg.h>
在gui.h中增加虚函数定义
virtual void OnAbout(wxCommandEvent& event)
{
event.Skip();
}
在gui.cpp中定义一个顶级菜单help和一个菜单项about代码如下:
wxMenu* m_menuHelp = new wxMenu();
wxMenuItem* menuHelpAbout;
menuHelpAbout = new wxMenuItem(m_menuFile,wxID_ANY,wxString(_("&About")) + wxT('/t') + wxT("Alt+A"),menuAboutHelpStr,wxITEM_NORMAL);
m_menuHelp->Append(menuHelpAbout);
将创建的菜单项与事件处理函数关联
this->Connect( menuHelpAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnAboutClick ) );
在窗体析构函数中解除菜单项与事件处理函数的关联
this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnAboutClick ) );
在main.h中声明事件处理函数
virtual void OnAboutClick(wxCommandEvent& event);
在main.cpp中实现点击菜单的事件处理函数,在这里我们弹出一个关于对话框,显示应用程序名称、版本、网址、研发人员、版权信息等
void MainFrame::OnAboutClick(wxCommandEvent& event)
{
m_menuBar->Append(m_menuEdit,_("&Edit"));
wxAboutDialogInfo aboutInfo;
aboutInfo.SetName(wxT("MyApp"));
aboutInfo.SetVersion(wxT("1.0.0.1"));
aboutInfo.SetDescription(_("My wxWidgets-based application!"));
aboutInfo.SetCopyright(wxT("(C) 1992-2010"));
aboutInfo.SetWebSite(wxT("http://AlexSoft.org"));
aboutInfo.AddDeveloper(wxT("John"));
aboutInfo.AddDeveloper(wxT("Alex"));
aboutInfo.AddArtist(wxT("eva"));
aboutInfo.AddDocWriter(wxT("eva"));
aboutInfo.SetLicence(wxT("this program only distributed in china /r/n"));
wxAboutBox(aboutInfo);
}