CodeLite+wxWidgets跨平台C++库开发(二、helloworld)

今天我们写一个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);

}

你可能感兴趣的:(C++,command,application,menu,跨平台,2010)