C++ 通过选择'关闭应用程序;退出';菜单项-wxWidgets 3.0
到目前为止,我已经为wxWidgets应用程序编写了一些简单的代码,比如创建菜单、框架和一些按钮。要完成退出过程,我有一个显示消息框的功能:C++ 通过选择'关闭应用程序;退出';菜单项-wxWidgets 3.0,c++,menu,wxwidgets,codeblocks,windows-7-x64,C++,Menu,Wxwidgets,Codeblocks,Windows 7 X64,到目前为止,我已经为wxWidgets应用程序编写了一些简单的代码,比如创建菜单、框架和一些按钮。要完成退出过程,我有一个显示消息框的功能: int OnExit( ) { wxMessageBox( "Closing the application", wxOK | wxICON_INFORMATION ) return 0; } 通过单击关闭(X)按钮关闭应用程序将显示消息框,然后退出。但是通过点击“退出”菜单项来关闭它对我不起作用。我曾尝试从一个旧示例和wxWidgets
int OnExit( )
{
wxMessageBox( "Closing the application", wxOK | wxICON_INFORMATION )
return 0;
}
通过单击关闭(X)按钮关闭应用程序将显示消息框,然后退出。但是通过点击“退出”菜单项来关闭它对我不起作用。我曾尝试从一个旧示例和wxWidgets项目附带的代码块基本示例代码中复制一些代码,但没有成功。请显示从菜单项关闭应用程序的方法。尝试在web上搜索“wxwidgets关闭窗口菜单”:在
OnExit
函数中,您需要调用示例中的Close
方法。尝试在web上搜索“wxwidgets关闭窗口菜单”:// Build: g++ this.cpp -std=gnu++11 $(wx-config --cxxflags --libs core,base)
#include <wx/wx.h>
class CApp : public wxApp
{
public:
bool OnInit() {
// Create the main frame.
wxFrame * frame = new wxFrame(NULL, wxID_ANY, wxT("demo"));
// Add the menubar
wxMenu * menus[] = {new wxMenu, new wxMenu};
wxString labels[] = {wxT("&File"), wxT("&Help")};
frame->wxFrame::SetMenuBar(new wxMenuBar(2, menus, labels));
menus[0]->Append(wxID_EXIT);
// Bind an event handling method for menu item wxID_EXIT.
this->Bind(wxEVT_MENU, [frame](wxCommandEvent &)->void{
frame->Close();
/* 1. method wxWindow::Close
* 2. event type wxEVT_CLOSE_WINDOW
* 3. method wxTopLevelWindow::OnCloseWindow
* 4. method wxTopLevelWindow::Destroy (overriding wxWindow::Destroy)
* 5. op delete
*/
}, wxID_EXIT);
// Enter the message loop.
frame->Centre(wxBOTH);
frame->Show(true);
return true;
}
int OnExit() {
wxMessageBox("Closing the application", wxEmptyString, wxOK | wxICON_INFORMATION);
return this->wxApp::OnExit();
}
};
wxDECLARE_APP(CApp);
wxIMPLEMENT_APP(CApp);
在OnExit
函数中,您需要调用示例中的Close
方法。尝试在web上搜索“wxwidgets关闭窗口菜单”:// Build: g++ this.cpp -std=gnu++11 $(wx-config --cxxflags --libs core,base)
#include <wx/wx.h>
class CApp : public wxApp
{
public:
bool OnInit() {
// Create the main frame.
wxFrame * frame = new wxFrame(NULL, wxID_ANY, wxT("demo"));
// Add the menubar
wxMenu * menus[] = {new wxMenu, new wxMenu};
wxString labels[] = {wxT("&File"), wxT("&Help")};
frame->wxFrame::SetMenuBar(new wxMenuBar(2, menus, labels));
menus[0]->Append(wxID_EXIT);
// Bind an event handling method for menu item wxID_EXIT.
this->Bind(wxEVT_MENU, [frame](wxCommandEvent &)->void{
frame->Close();
/* 1. method wxWindow::Close
* 2. event type wxEVT_CLOSE_WINDOW
* 3. method wxTopLevelWindow::OnCloseWindow
* 4. method wxTopLevelWindow::Destroy (overriding wxWindow::Destroy)
* 5. op delete
*/
}, wxID_EXIT);
// Enter the message loop.
frame->Centre(wxBOTH);
frame->Show(true);
return true;
}
int OnExit() {
wxMessageBox("Closing the application", wxEmptyString, wxOK | wxICON_INFORMATION);
return this->wxApp::OnExit();
}
};
wxDECLARE_APP(CApp);
wxIMPLEMENT_APP(CApp);
在OnExit
函数中,您需要调用示例中的Close
方法。尝试在web上搜索“wxwidgets关闭窗口菜单”:// Build: g++ this.cpp -std=gnu++11 $(wx-config --cxxflags --libs core,base)
#include <wx/wx.h>
class CApp : public wxApp
{
public:
bool OnInit() {
// Create the main frame.
wxFrame * frame = new wxFrame(NULL, wxID_ANY, wxT("demo"));
// Add the menubar
wxMenu * menus[] = {new wxMenu, new wxMenu};
wxString labels[] = {wxT("&File"), wxT("&Help")};
frame->wxFrame::SetMenuBar(new wxMenuBar(2, menus, labels));
menus[0]->Append(wxID_EXIT);
// Bind an event handling method for menu item wxID_EXIT.
this->Bind(wxEVT_MENU, [frame](wxCommandEvent &)->void{
frame->Close();
/* 1. method wxWindow::Close
* 2. event type wxEVT_CLOSE_WINDOW
* 3. method wxTopLevelWindow::OnCloseWindow
* 4. method wxTopLevelWindow::Destroy (overriding wxWindow::Destroy)
* 5. op delete
*/
}, wxID_EXIT);
// Enter the message loop.
frame->Centre(wxBOTH);
frame->Show(true);
return true;
}
int OnExit() {
wxMessageBox("Closing the application", wxEmptyString, wxOK | wxICON_INFORMATION);
return this->wxApp::OnExit();
}
};
wxDECLARE_APP(CApp);
wxIMPLEMENT_APP(CApp);
在OnExit
函数中,需要调用示例中的Close
方法。//Build:g++this.cpp-std=gnu++11$(wx config--cxflags--libs core,base)
// Build: g++ this.cpp -std=gnu++11 $(wx-config --cxxflags --libs core,base)
#include <wx/wx.h>
class CApp : public wxApp
{
public:
bool OnInit() {
// Create the main frame.
wxFrame * frame = new wxFrame(NULL, wxID_ANY, wxT("demo"));
// Add the menubar
wxMenu * menus[] = {new wxMenu, new wxMenu};
wxString labels[] = {wxT("&File"), wxT("&Help")};
frame->wxFrame::SetMenuBar(new wxMenuBar(2, menus, labels));
menus[0]->Append(wxID_EXIT);
// Bind an event handling method for menu item wxID_EXIT.
this->Bind(wxEVT_MENU, [frame](wxCommandEvent &)->void{
frame->Close();
/* 1. method wxWindow::Close
* 2. event type wxEVT_CLOSE_WINDOW
* 3. method wxTopLevelWindow::OnCloseWindow
* 4. method wxTopLevelWindow::Destroy (overriding wxWindow::Destroy)
* 5. op delete
*/
}, wxID_EXIT);
// Enter the message loop.
frame->Centre(wxBOTH);
frame->Show(true);
return true;
}
int OnExit() {
wxMessageBox("Closing the application", wxEmptyString, wxOK | wxICON_INFORMATION);
return this->wxApp::OnExit();
}
};
wxDECLARE_APP(CApp);
wxIMPLEMENT_APP(CApp);
#包括
类别:公共wxApp
{
公众:
bool OnInit(){
//创建主框架。
wxFrame*frame=新的wxFrame(NULL,wxID_ANY,wxT(“demo”));
//添加菜单栏
wxMenu*菜单[]={new wxMenu,new wxMenu};
wxString标签[]={wxT(“&File”),wxT(“&Help”)};
frame->wxFrame::SetMenuBar(新的wxMenuBar(2,菜单,标签));
菜单[0]->Append(wxID_退出);
//为菜单项wxID_EXIT绑定事件处理方法。
此->绑定(wxEVT_菜单,[frame](wxCommandEvent&)->void{
框架->关闭();
/*1.方法wxWindow::Close
*2.事件类型wxEVT\u关闭\u窗口
*3.方法wxTopLevelWindow::OnCloseWindow
*4.方法wxTopLevelWindow::Destroy(重写wxWindow::Destroy)
*5.op删除
*/
},wxID_出口);
//输入消息循环。
框架->中心(wxBOTH);
帧->显示(真);
返回true;
}
int OnExit(){
wxMessageBox(“关闭应用程序”,wxEmptyString,wxOK | wxICON_信息);
返回此->wxApp::OnExit();
}
};
wxDECLARE_应用程序(CApp);
wxIMPLEMENT_应用程序(CApp);
//Build:g++this.cpp-std=gnu++11$(wx-config-cxflags-libs-core,base)
#包括
类别:公共wxApp
{
公众:
bool OnInit(){
//创建主框架。
wxFrame*frame=新的wxFrame(NULL,wxID_ANY,wxT(“demo”));
//添加菜单栏
wxMenu*菜单[]={new wxMenu,new wxMenu};
wxString标签[]={wxT(“&File”),wxT(“&Help”)};
frame->wxFrame::SetMenuBar(新的wxMenuBar(2,菜单,标签));
菜单[0]->Append(wxID_退出);
//为菜单项wxID_EXIT绑定事件处理方法。
此->绑定(wxEVT_菜单,[frame](wxCommandEvent&)->void{
框架->关闭();
/*1.方法wxWindow::Close
*2.事件类型wxEVT\u关闭\u窗口
*3.方法wxTopLevelWindow::OnCloseWindow
*4.方法wxTopLevelWindow::Destroy(重写wxWindow::Destroy)
*5.op删除
*/
},wxID_出口);
//输入消息循环。
框架->中心(wxBOTH);
帧->显示(真);
返回true;
}
int OnExit(){
wxMessageBox(“关闭应用程序”,wxEmptyString,wxOK | wxICON_信息);
返回此->wxApp::OnExit();
}
};
wxDECLARE_应用程序(CApp);
wxIMPLEMENT_应用程序(CApp);
//Build:g++this.cpp-std=gnu++11$(wx-config-cxflags-libs-core,base)
#包括
类别:公共wxApp
{
公众:
bool OnInit(){
//创建主框架。
wxFrame*frame=新的wxFrame(NULL,wxID_ANY,wxT(“demo”));
//添加菜单栏
wxMenu*菜单[]={new wxMenu,new wxMenu};
wxString标签[]={wxT(“&File”),wxT(“&Help”)};
frame->wxFrame::SetMenuBar(新的wxMenuBar(2,菜单,标签));
菜单[0]->Append(wxID_退出);
//为菜单项wxID_EXIT绑定事件处理方法。
此->绑定(wxEVT_菜单,[frame](wxCommandEvent&)->void{
框架->关闭();
/*1.方法wxWindow::Close
*2.事件类型wxEVT\u关闭\u窗口
*3.方法wxTopLevelWindow::OnCloseWindow
*4.方法wxTopLevelWindow::Destroy(重写wxWindow::Destroy)
*5.op删除
*/
},wxID_出口);
//输入消息循环。
框架->中心(wxBOTH);
帧->显示(真);
返回true;
}
int OnExit(){
wxMessageBox(“关闭应用程序”,wxEmptyString,wxOK | wxICON_信息);
返回此->wxApp::OnExit();
}
};
wxDECLARE_应用程序(CApp);
wxIMPLEMENT_应用程序(CApp);
//Build:g++this.cpp-std=gnu++11$(wx-config-cxflags-libs-core,base)
#包括
类别:公共wxApp
{
公众:
bool OnInit(){
//创建主框架。
wxFrame*frame=新的wxFrame(NULL,wxID_ANY,wxT(“demo”));
//添加菜单栏
wxMenu*菜单[]={new wxMenu,new wxMenu};
wxString标签[]={wxT(“&File”),wxT(“&Help”)};
frame->wxFrame::SetMenuBar(新的wxMenuBar(2,菜单,标签));
菜单[0]->Append(wxID_退出);
//为菜单项wxID_EXIT绑定事件处理方法。
此->绑定(wxEVT_菜单,[frame](wxCommandEvent&)->void{
框架->关闭();
/*1.方法wxWindow::Close
*2.事件类型wxEVT\u关闭\u窗口
*3.方法wxTopLevelWindow::OnClo