Я вместе изучал wxWidgets и C ++, и это было супер захватывающе.Я использовал все онлайн-учебники, которые смог найти, купил и читаю книгу.Я хорошо знаю, что многие учебные пособия (и книга) устарели, поэтому часть моего обучения состоит в том, чтобы привести примеры в соответствие с текущей практикой.
Я преобразовал учебник "Ваше первое приложение"в вики wxwidgets использовать динамический Bind (), например, вместо таблицы событий, и обновлять ссылки на wxEVT_COMMAND_MENU_SELECTED для более нового и предпочтительного wxEVT_MENU:
MyFrame::MyFrame(const wxString &title) : wxFrame(nullptr, wxID_ANY, title) {
MainMenu = new wxMenuBar();
wxMenu *FileMenu = new wxMenu;
MainMenu->Append(FileMenu, _T("File"));
SetMenuBar(MainMenu);
CreateStatusBar(1);
FileMenu->Append(MENU_New, _T("&New"), _T("Create a new file"));
FileMenu->Append(MENU_Open, _T("&Open"), _T("Open an existing file"));
FileMenu->Append(MENU_Close, _T("&Close"), _T("Close the current document"));
FileMenu->Append(MENU_Save, _T("&Save"), _T("Save the current document"));
FileMenu->Append(MENU_SaveAs, _T("Save &As"), _T("Save current document with new name"));
FileMenu->Append(MENU_Quit, _T("&Quit"), _T("Quit the editor"));
Bind(wxEVT_MENU, &MyFrame::NewFile, this, MENU_New);
Bind(wxEVT_MENU, &MyFrame::OpenFile, this, MENU_Open);
Bind(wxEVT_MENU, &MyFrame::CloseFile, this, MENU_Close);
Bind(wxEVT_MENU, &MyFrame::SaveFile, this, MENU_Save);
Bind(wxEVT_MENU, &MyFrame::SaveAsFile, this, MENU_SaveAs);
Bind(wxEVT_MENU, &MyFrame::Quit, this, MENU_Quit);
MainEditBox = new wxTextCtrl(this, TEXT_Main, _T("Hi!\n"), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_RICH | wxNO_BORDER, wxDefaultValidator, wxTextCtrlNameStr);
}
Теперь, в качестве учебного упражнения, я 'Я заинтересован в выяснении, как привязать событие «изменить размер».То, что я хотел бы сделать, просто для удобства, это отобразить размер текущего кадра в строке состояния во время его изменения: что-то вроде (300: 200), но динамически изменяющееся при изменении размера кадра.Но мне не повезло выяснить, как связать с этим событием.
Может кто-нибудь предложить мне один или два совета о том, как я могу это сделать?Заранее спасибо.