Когда я создаю простое приложение с wxFRAME_NO_TASKBAR | wxBORDER_NONE как показано ниже
#include <wx/wx.h>class Simple : public wxFrame
class Simple : public wxFrame
{
public:
Simple(const wxString& title);
};Simple::Simple(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250, 150),wxFRAME_NO_TASKBAR | wxBORDER_NONE)
{
Centre();
}class MyApp : public wxApp
{
public:
virtual bool OnInit();
};IMPLEMENT_APP(MyApp)
bool MyApp::OnInit()
{
Simple *simple = new Simple(wxT("Simple"));
simple->Show(true);
return true;
}
Когда я пытаюсь выключить компьютер во время работы этого приложения, он показывает «Инструкция по адресу 0x00780065 ссылается на память по адресу 0x00780065 Память не может быть записана».
Чтобы предотвратить выход из системы, вы можете сделать следующее
Запустите блокнот и наберите что-нибудь. Затем запустите скомпилированную программу. Затем попробуйте выйти из системы. Вы увидите ошибку. Когда блокнот спросит, хотите ли вы сохранить, ничего не делайте. Через несколько секунд появится окно с возможностью принудительного выхода из системы. Нажмите Отмена. Таким образом, вы можете повторить проблему, не выходя из системы.
Я думаю, что вам нужно справиться с закрытием мероприятия.
http://docs.wxwidgets.org/trunk/classwx_close_event.html
Обратите особое внимание на обсуждение EVT_END_SESSION
Других решений пока нет …