Я использую wxFormBuilder для создания GUI.Итак, у меня есть мое приложение:
HelloApp::HelloApp() {
}
HelloApp::~HelloApp() {
}
bool HelloApp::OnInit() {
guifrmMain* frame = new guifrmMain((wxWindow*)NULL);
frame->Show();
SetTopWindow(frame);
return true;
}
У меня есть два класса для двух «Фреймов»:
frmMain::frmMain(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name) : wxFrame(parent, id, title, pos, size, style, name)
{
//skipped
m_Button->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(frmMain::onPressBTN), NULL, this);
}
frmMatrix::frmMatrix(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxFrame(parent, id, title, pos, size, style)
{
m_bpButton28 = new wxBitmapButton(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW | 0);
m_text_tst = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
m_bpButton28->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(frmMatrix::onBtn1_click), NULL, this);
}
...
class guifrmMain : public frmMain
{
public:
/** Constructor */
guifrmMain( wxWindow* parent );
void onPressBTN(wxCommandEvent& event);
}
class guifrmMatrix : public frmMatrix
{
public:
/** Constructor */
guifrmMatrix(wxWindow* parent);
void onBtn1_click(wxCommandEvent& event);
};
guifrmMain::guifrmMain( wxWindow* parent )
:
frmMain( parent )
{
}
guifrmMatrix::guifrmMatrix(wxWindow* parent)
:
frmMatrix(parent)
{
m_parent = parent;
//this is not working:
m_text_tst->SetValue(_("test"));
}
, и когда я нажимаю кнопку, я запускаю новый Фрейм:
void guifrmMain::onPressBTN(wxCommandEvent& event) {
frmMatrix* frm = new frmMatrix(this);
frm->Show(TRUE);
}
Он открывается, но затем события не работают в новом кадре:
void guifrmMatrix::onBtn1_click(wxCommandEvent& event) {
m_text_tst->SetValue(_("onBtn1_click")); // this is not working
}
Где ошибка?Спасибо!PS Я не могу представить свой вопрос.Поэтому мне нужно написать еще кое-что.Я не опытный программист C ++.С мой язык.А C ++ немного.Ответьте, пожалуйста.Оцените это.
PPS Я обнаружил ошибку.С этим кодом это работает:
guifrmMatrix * frm = новый guifrmMatrix (this);