Имеем:
1. Мое событие;
2. Таблица событий.
Цель:
Создать свое событие и его использовать. При этом использовать таблицу событий.
Что делал:
1. Читал мануал, ничего не понял, как-то неочевидно;
2. Открыл код по пути wxWidgets\samples\event
Ожидаемо, как-то нагромажде, опять же не смог понять.
Мой код:
Code: Select all
#include <wx/wx.h>
#include <wx/button.h>
wxDEFINE_EVENT (myEvent, wxCommandEvent);
class MyWindow : public wxFrame {
public:
wxButton* m_button1;
const int m_id_button1 = 1;
public:
MyWindow (const wxString& aTitle)
: wxFrame (0, wxID_ANY, aTitle, wxDefaultPosition, wxSize (150, 150)) {
m_button1 = new wxButton (this, m_id_button1,
wxT ("button1"));
wxBoxSizer* boxSizerV = new wxBoxSizer (wxVERTICAL);
boxSizerV->Add (m_button1, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5);
this->SetSizer (boxSizerV);
Centre ();
}
DECLARE_EVENT_TABLE()
private:
BEGIN_EVENT_TABLE (MyWindow, wxFrame)
myEvent (m_id_button1, MyWindow::clickButton)
END_EVENT_TABLE ()
public:
void clickButton (wxCommandEvent& event) {
if (event.GetId() == m_id_button1) {
std::cout << "it works" << std::endl;
}
}
};
class MyApp : public wxApp {
public:
virtual bool OnInit () {
MyWindow* MyWindow1 = new MyWindow (wxT("MyWindow1"));
MyWindow1->Show (true);
return true;
}
};
IMPLEMENT_APP(MyApp)
1. как создать свое событие и его использовать ?