Имеем:
Я - уровень дно;
Windows 10;
wxWidgets 3.1.5;
Простой код с двумя виджетами wxTextCtrl;
Что не работает:
При завершении программы, у которой 2 виджета wxTextCtrl, завершается с ошибкой.
Программа нормально завершается если есть только один виджет wxTextCtrl, если 2 и более то ошибка.
Вопрос:
1. В чем ошибка?
Пробовал читать офиц. документацию на оф. сайте про wxTextCtrl, не понял...
Код:
Code: Select all
#include <wx/wx.h>
#include <wx/button.h>
class Traning : public wxFrame {
public:
wxTextCtrl* m_textCtrlLeft;
wxTextCtrl* m_textCtrlRight;
wxButton* m_buttonExit;
const int id_buttonExit = 1;
public:
Traning (const wxString& aTitle)
: wxFrame (0, wxID_ANY, aTitle, wxDefaultPosition, wxSize (300, 150)) {
wxPanel* panel1 = new wxPanel (this, wxID_ANY);
m_textCtrlLeft = new wxTextCtrl (panel1, wxID_ANY, wxEmptyString);
m_textCtrlRight = new wxTextCtrl (panel1, wxID_ANY, wxEmptyString);
m_buttonExit = new wxButton (panel1, id_buttonExit, wxT("Выход"));
Bind (wxEVT_COMMAND_BUTTON_CLICKED, &Traning::performExit,
this, id_buttonExit);
wxBoxSizer* boxSizerH1 = new wxBoxSizer (wxHORIZONTAL);
boxSizerH1->Add (m_textCtrlLeft, 1, wxEXPAND, 5);
boxSizerH1->Add (m_textCtrlRight, 1, wxEXPAND, 5);
wxBoxSizer* boxSizerVall = new wxBoxSizer (wxVERTICAL);
boxSizerVall->Add (boxSizerH1, 1, wxEXPAND, 5);
boxSizerVall->Add (m_buttonExit, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5);
panel1->SetSizer (boxSizerVall);
Centre ();
}
public:
void performExit (wxCommandEvent& event) {
Destroy ();
}
};
class MyApp : public wxApp {
public:
virtual bool OnInit () {
Traning* Traning1 = new Traning (wxT("Traning1"));
Traning1->Show (true);
return true;
}
};
IMPLEMENT_APP(MyApp)
P.S.: режет глаза именование переменных? это у меня идет из машиностроения и Госта, но с английским языком выглядит убого