Некорректное отображение текста пунктов меню в строке состояния — wxWidgets 3.0

Я пишу простое программное обеспечение с графическим интерфейсом, используя wxWidgets 3.0 в CodeBlocks 13.12, на машине Win 7 x64.

Я хотел бы создать меню для фрейма, и каждый элемент во фрейме должен выделять отдельный текст в строке состояния при выделении. Ниже то, что я сделал до сих пор (только часть меню кода). Меню и строка состояния отображаются в соответствии с планом. Проблема в том, что каждый элемент (в подменю «Файл» и «Данные»), когда он выделен, отображает «Сохранить проект» в строке состояния — это самый первый элемент в первом подменю. Как это изменить, чтобы отображались правильные названия пунктов меню?

КОД:

    wxMenuBar* mbar = new wxMenuBar();

wxMenu* fileMenu = new wxMenu(_T(""));
//fileMenu->Append(, _("&"), _("")));
fileMenu->Append(SaveProject, _("&Save project"), _("Save project"));
fileMenu->Append(SaveProjectAs, _("&Save project as"), _("Save project as"));
fileMenu->Append(OpenNewProject, _("&Open new project"), _("Open new project"));
fileMenu->Append(OpenExistingProject, _("&Open existing project"), _("Open existing project"));
fileMenu->AppendSeparator();
fileMenu->Append(Quit, _("&Quit"), _("Quit"));

mbar->Append(fileMenu, _("&File"));

wxMenu* dataMenu = new wxMenu(_T(""));
//fileMenu->Append(, _("&"), _("")));
dataMenu->Append(ImportData, _("&Import data"), _("Import data"));
dataMenu->Append(ExportData, _("&Export data"), _("Export data"));
dataMenu->Append(SavaDataAs, _("&Save data as"), _("Save data as"));

mbar->Append(dataMenu, _("&Data"));

mainFrame->SetMenuBar(mbar);

0

Решение

Я подозреваю, что проблема в том, что вы используете дубликаты идентификаторов меню (например, SaveProject используется дважды). Хотя не ясно, почему это должно приводить к наблюдаемому поведению, довольно ясно, что вы не можете повторно использовать идентификаторы меню, поскольку у вас не будет возможности различить события, генерируемые двумя элементами с одинаковым идентификатором. Так что не делай этого.

1

Другие решения


По вопросам рекламы [email protected]