wxWidgets( 二 )


wxWidgets

文章插图

wxWidgets

文章插图
// wxWidgets "Hello world" Program// For compilers that support precompilation, includes "wx/wx.h".#include <wx/wxprec.h>#ifndef WX_PRECOMP#include <wx/wx.h>#endifclass MyApp: public wxApp //这个类用来实现全局讯息循环{public:virtual bool OnInit(); //在进入讯息循环之前调用此函式实现对主视窗类的初始化};class MyFrame: public wxFrame //主视窗类{public:MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);private:void OnHello(wxCommandEvent& event);void OnExit(wxCommandEvent& event);void OnAbout(wxCommandEvent& event);wxDECLARE_EVENT_TABLE(); };enum{ID_Hello = 1};wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)EVT_MENU(ID_Hello, MyFrame::OnHello)EVT_MENU(wxID_EXIT, MyFrame::OnExit)EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)wxEND_EVENT_TABLE()wxIMPLEMENT_APP(MyApp);bool MyApp::OnInit(){MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) );frame->Show( true );return true;}MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size): wxFrame(NULL, wxID_ANY, title, pos, size){wxMenu *menuFile = new wxMenu;menuFile->Append(ID_Hello, "&Hello...\tCtrl-H","Help string shown in status bar for this menu item");menuFile->AppendSeparator();menuFile->Append(wxID_EXIT);wxMenu *menuHelp = new wxMenu;menuHelp->Append(wxID_ABOUT);wxMenuBar *menuBar = new wxMenuBar;menuBar->Append( menuFile, "&File" );menuBar->Append( menuHelp, "&Help" );SetMenuBar( menuBar );CreateStatusBar();SetStatusText( "Welcome to wxWidgets!" );}void MyFrame::OnExit(wxCommandEvent& event){Close( true );}void MyFrame::OnAbout(wxCommandEvent& event) {wxMessageBox( "This is a wxWidgets' Hello world sample","About Hello World", wxOK | wxICON_INFORMATION );}void MyFrame::OnHello(wxCommandEvent& event){wxLogMessage("Hello world from wxWidgets!");}