Возможно, мой заголовок неясен, поэтому я приведу более точное объяснение:
Я просто изучаю WxWidgets и сейчас пытаюсь создать два файла: main. cpp и Quit.h. , Main. cpp будет иметь ядро приложения, а Quit.h будет иметь класс для диалога выхода: вы действительно хотите выйти из этого приложения (Да / Нет).
Теперь это мой Файл quit.h (без include
part):
class Quit : public wxFrame
{
public:
Quit(const wxString& tekst);
};
Quit::Quit(const wxString& tekst)
{
wxMessageDialog* dial = new wxMessageDialog(NULL, _("Do you really want to quit?"), _("Quit"), wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION);
dial->ShowModal();
}
И вот я застрял. Я пробовал с wxDECLARE_EVENT_TABLE()
, но я не знаю, какое событие означает это: «при нажатии кнопки yes (в системе кнопок wxYES_NO)». Я не могу сказать: по нажатию кнопки wxYES_NO, потому что это две кнопки (и ДА, и НЕТ).
Так как я могу выполнить функцию, когда нажата кнопка ДА?
Спасибо Вы!
PS Я действительно извиняюсь за этот неясный вопрос, но я надеюсь, что вы поймете. Обратите внимание, что я только начинающий, поэтому, пожалуйста, не используйте так много «технических» слов и выражений в ответе. Я прочитал документацию, но она использует так много технических выражений и объяснений. Кроме того, я прочитал эту книгу.
PPS. Вы заметили, что сейчас много вопросов по SE, пока идет COVID-19?
РЕДАКТИРОВАТЬ: Когда я делал программу, я пришел к другой ошибке. Минимальный код:
Quit.h
class Quit : public wxFrame
{
public:
Quit(const wxWindow* parent, const wxString& text);
};
Quit::Quit(const wxWindow* parent, const wxString& text)
{
int dialog_return_value = wxNO;
wxMessageDialog* dial = new wxMessageDialog(NULL, text, _("Exit"), wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION);
dialog_return_value = dial->ShowModal();
switch (dialog_return_value)
{
case wxYES:
Close(true);
break;
case wxNO:
Close(false);
break;
default:
Close(false);
};
}
, и тогда у меня есть эта строка в основном. cpp:
void MyFrame::CloseWindow(wxCommandEvent& event)
{
Quit* quit = new Quit(this, _("Do you really want to close the App?"));
}
И тогда это не работает , Я не могу найти решение, поэтому, если у вас есть время, пожалуйста, помогите.
Еще раз спасибо!