Code
1
#include "wx/wx.h"
2![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
// 定义应用程序类
4
class MyApp : public wxApp
5![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
6
public:
7
virtual bool OnInit();
8
};
9![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
// 定义主窗口类
11
class MyFrame : public wxFrame
12![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
13
public:
14
// 主窗口类的构造函数
15
MyFrame(const wxString& title);
16![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
// 事件处理函数
18
void OnQuit(wxCommandEvent& event);
19
void OnAbout(wxCommandEvent& event);
20![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
private:
22
// 声明事件表
23
DECLARE_EVENT_TABLE()
24
};
25![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
// 有了这一行就可以使用 MyApp& wxGetApp()了
27
DECLARE_APP(MyApp)
28![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
// 告诉wxWidgets主应用程序是哪个类
30
IMPLEMENT_APP(MyApp)
31![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
32
// 初始化程序
33
bool MyApp::OnInit()
34![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
35
// 创建主窗口
36
MyFrame *frame = new MyFrame(wxT("Minimal wxWidgets App"));
37![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
// 显示主窗口
39
frame->Show(true);
40![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
// 开始事件处理循环
42
return true;
43
}
44![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
45
// MyFrame类的事件表
46
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
47
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
48
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
49
END_EVENT_TABLE()
50![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
void MyFrame::OnAbout(wxCommandEvent& event)
52![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
53
wxString msg;
54
msg.Printf(wxT("Hello and welcome to %s"),
55
wxVERSION_STRING);
56![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
wxMessageBox(msg, wxT("About Minimal"),
58
wxOK | wxICON_INFORMATION, this);
59
}
60![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
61
void MyFrame::OnQuit(wxCommandEvent& event)
62![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
63
// 释放主窗口
64
Close();
65
}
66![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
67
//#include "mondrian.xpm"
68
//
69
#include "sample.xpm"
70![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
71
MyFrame::MyFrame(const wxString& title)
72
: wxFrame(NULL, wxID_ANY, title)
73![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
74
// 设置窗口图标
75
//SetIcon(wxIcon(mondrian_xpm));
76![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
// 创建菜单条
78
wxMenu *fileMenu = new wxMenu;
79![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
// 添加“关于”菜单项
81
wxMenu *helpMenu = new wxMenu;
82
helpMenu->Append(wxID_ABOUT, wxT("&About
\tF1"),
83
wxT("Show about dialog"));
84![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
85
fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"),
86
wxT("Quit this program"));
87![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
88
// 将菜单项添加到菜单条中
89
wxMenuBar *menuBar = new wxMenuBar();
90
menuBar->Append(fileMenu, wxT("&File"));
91
menuBar->Append(helpMenu, wxT("&Help"));
92![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
93
//
然后将菜单条放置在主窗口上
94
SetMenuBar(menuBar);
95![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
96
// 创建一个状态条来让一切更有趣些。
97
CreateStatusBar(2);
98
SetStatusText(wxT("欢迎使用wxWidgets!"));
99
}
转载于:https://www.cnblogs.com/93797743/archive/2009/02/23/1396671.html