Подключение одного события к определенному методу в wxWidgets

0

Я делаю первые шаги в изучении wxWidgets. Я узнал, как назначать события для элементов меню или кнопок, например, потому что у них есть идентификаторы. Но когда я попытался назначить событие в Меню, мне было очень сложно.

Моя цель состояла в том, чтобы присвоить одному из этих верхних меню меню MenuBar конкретное событие, а не иметь список элементов меню. Сначала я не справился, пока не подумал об использовании:

Connect(wxEVT_MENU_OPEN, wxCommandEventHandler(MainFrame::Config));

Это отлично работало, пока я не понял, что это происходит со всеми меню! Это очевидно, так как нет места, где я указывал команду Connect для применения только для этого меню.

Любая помощь здесь? Я хотел бы, чтобы этот метод выполнялся только при нажатии на определенное меню, но не все! Спасибо заранее.

Теги:
events
wxwidgets

1 ответ

1
Лучший ответ

Предполагая, что вы хотите вызвать MainFrame :: Config, если элемент меню, созданный

yourMenu->Append(SOME_ID, wxT("&Configuration"));

получает щелчок, использует

this->Bind(wxEVT_COMMAND_MENU_SELECTED, &MainFrame::Config, this, SOME_ID);

если это ваш мэйнфрейм.

  • 0
    Спасибо, это почти работает, хотя компилятор возвращает мне эту ошибку: «ожидается незаданный идентификатор перед» -> «токен». Возможно, это связано с тем, что меню, о котором я говорю, это класс wxMenu, а не класс wxMenuItem, и, следовательно, у него нет идентификатора. Что я сделал, так это поместил идентификатор wxMenu, где вы сказали SOME_ID, это тоже хорошо?
  • 0
    Какой идентификатор wxMenu вы имеете в виду? Сообщение об ошибке звучит так, как будто этот указатель был выключен.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню