2014年12月4日 星期四

使用wxWidgets進行跨平台程式開發-wxbook_02_01(改寫)

使用wxWidgets進行跨平台程式開發-wxbook_02_01(改寫)



 


第二章範例:P39~P42(使用類別-wxApp、wxFrame、wxString、wxCommandEvent、wxMessageBox、wxMenu、wxMenuBar)


 


 


// Name:        minimal.cpp
// Purpose: Minimal wxWidgets sample
// Author: Julian Smart

#include "wx/wx.h"

// Declare the application class
class MyApp : public wxApp//建立主程式類別
{
public:
// Called on application startup
virtual bool OnInit();
};

// Declare our main frame class
class MyFrame : public wxFrame//建立GUI類別
{
public:
// Constructor
MyFrame(const wxString& title);

// Event handlers
void OnQuit(wxCommandEvent& event);//建立回應事件函數
void OnAbout(wxCommandEvent& event);//建立回應事件函數

private:
// This class handles events
DECLARE_EVENT_TABLE()
};

// Implements MyApp& GetApp()
DECLARE_APP(MyApp)

// Give wxWidgets the means to create a MyApp object
IMPLEMENT_APP(MyApp)

// Initialize the application
bool MyApp::OnInit()
{
// Create the main application window
MyFrame *frame = new MyFrame(wxT("Minimal wxWidgets App"));//建立實體GUI物件

// Show it
frame->Show(true);//顯示GUI

// Start the event loop
return true;
}

// Event table for MyFrame
BEGIN_EVENT_TABLE(MyFrame, wxFrame)//註冊事件回應與函數對應
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
END_EVENT_TABLE()

void MyFrame::OnAbout(wxCommandEvent& event)//事件回應函數實體
{
wxString msg;
msg.Printf(wxT("Hello and welcome to %s"),
wxVERSION_STRING);

wxMessageBox(msg, wxT("About Minimal"),//MessageBox
wxOK | wxICON_INFORMATION, this);
}

void MyFrame::OnQuit(wxCommandEvent& event)
{
// Destroy the frame
Close();//關閉程式
}

//#include "mondrian.xpm"

MyFrame::MyFrame(const wxString& title)
: wxFrame(NULL, wxID_ANY, title)
{
// Set the frame icon
//SetIcon(wxIcon(mondrian_xpm));

// Create a menu bar
wxMenu *fileMenu = new wxMenu;//建立Menu

// The "About" item should be in the help menu
wxMenu *helpMenu = new wxMenu;
helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"),
wxT("Show about dialog"));

fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"),
wxT("Quit this program"));

// Now append the freshly created menu to the menu bar...
wxMenuBar *menuBar = new wxMenuBar();//建立MenuMenuBar
menuBar->Append(fileMenu, wxT("&File"));
menuBar->Append(helpMenu, wxT("&Help"));

// ... and attach this menu bar to the frame
SetMenuBar(menuBar);

// Create a status bar just for fun
CreateStatusBar(2);
SetStatusText(wxT("Welcome to wxWidgets!"));
}















 




沒有留言:

張貼留言