|
///////////////////////
// TextFrame.cpp源文件//
///////////////////////
// 对支持预编译编译器要包含"wx/wx.h" #include "wx/wxprec.h" #ifndef WX_PRECOMP #include "wx/wx.h" #endif #include "TextFrame.h" TextFrame::TextFrame(const wxChar *title, int xpos, int ypos, int width, int height) : wxFrame((wxFrame *) NULL, -1, title, wxPoint(xpos, ypos), wxSize(width, height)) { //假如想给程序加上图标,应该使用下面的语句 //SetIcon(wxIcon(mondrian_xpm)); //此前应该加入一个xpm格式的图片 //#include "modrian.xpm" //xpm其实是一个ASCII编码的完全符合c++语法的文本文件,所以可以直接用c++的方式包含到代码中 //SetIcon使用mondrian_xpm变量在堆栈上创建了一个图标 //这个mondrian变量是在mondrian.xpm文件中定义的
//编辑框 m_pTextCtrl = new wxTextCtrl(this, -1, wxT(wxString("测试")), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
// 菜单条 m_pMenuBar = new wxMenuBar(); // 文件菜单 m_pFileMenu = new wxMenu(); //wxT宏可以让代码兼容Unicode模式,和宏_T的作用一样 //_()将字符串翻译为指定语言的版本 //&符号的前导的字符将成为彩旦的快捷操作符,实际中为一下划线 //t符号则表示一个全局的快捷键 m_pFileMenu->Append(MENU_FILE_OPEN, wxT("O&打开\tF2"), wxT("打开文件")); m_pFileMenu->Append(MENU_FILE_SAVE, wxT("S&保存\tF3"), wxT("保存文件")); m_pFileMenu->AppendSeparator(); m_pFileMenu->Append(MENU_FILE_QUIT, wxT("Q&退出\tF4"), wxT("退出系统")); m_pMenuBar->Append(m_pFileMenu, wxT("F&文件"));
// 关于菜单 m_pInfoMenu = new wxMenu(); m_pInfoMenu->Append(MENU_INFO_ABOUT, wxT("A&关于\tF5"), wxT("关于软件")); m_pMenuBar->Append(m_pInfoMenu, wxT("I&信息")); //设置程序菜单条 SetMenuBar(m_pMenuBar);
//创建一个有三个域的状态栏。第一个域包含文本"Ready" //状态栏用来显示对一个菜单项的描述。 CreateStatusBar(3); SetStatusText("Ready",0); } TextFrame::~TextFrame() { }
//事件表是放在实现文件中的 //宏BEGIN_EVENT在事件表声明的开始处使用 BEGIN_EVENT_TABLE(TextFrame, wxFrame) //将一个方法与事件关联要使用EVT_MENU宏 //这个宏需要菜单ID与事件名 EVT_MENU(MENU_FILE_OPEN, TextFrame::OnMenuFileOpen) EVT_MENU(MENU_FILE_SAVE, TextFrame::OnMenuFileSave) EVT_MENU(MENU_FILE_QUIT, TextFrame::OnMenuFileQuit) EVT_MENU(MENU_INFO_ABOUT, TextFrame::OnMenuInfoAbout) END_EVENT_TABLE() //事件表的最后用宏END_EVENT_TABLE作结束标记
void TextFrame::OnMenuFileOpen(wxCommandEvent &event) { wxLogMessage(wxT("File Open Menu Selected")); }
void TextFrame::OnMenuFileSave(wxCommandEvent &event) { wxLogMessage(wxT("File Save Menu Selected")); }
void TextFrame::OnMenuFileQuit(wxCommandEvent &event) { //Close函数并不直接关闭Frame窗口,而是产生了一个wxEVT_CLOSE_WINDOWS事件 //这个事件默认的处理函数调用wxWindow::Destory函数释放了frame窗口 Close(FALSE); //当点击关闭按钮时,wxWidgets也会调用close()函数,给frame窗口发一个wxEVT_CLOSE_WINDOWS事件 //可以在程序中拦截这个事件,改变默认的处理行为! }
void TextFrame::OnMenuInfoAbout(wxCommandEvent &event) { wxLogMessage(wxT("File About Menu Selected")); }
|