Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [wx] Обработка событий


Автор: Static 15.5.2009, 12:02
Вобщем, достаточно простой вопрос.
На форме есть пункт меню и дублирующая его кнопка. Естественно, они вызывают одну и ту же функцию и имеют один и тот же идентификатор. Как правильно описать эту ситуацию?

понятное дело, что если делать так:
Код

Connect(idMenuMeasures, wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&Report_visioFrame::SetMeasure); //button
Connect(idMenuMeasures, wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&Report_visioFrame::SetMeasure); //menu

то работает. Но мне кажется, что можно это сделать одним Connect().  Или нельзя?

Вот так попробовал - не работает smile
Код

Connect(idMenuMeasures, wxEVT_COMMAND_MENU_SELECTED | wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&Report_visioFrame::SetMeasure);

Автор: korbian 18.5.2009, 09:50
Static, я дублирую конекты. ИМХО, другого варианта нет и быть не должно. 
p.s. Второй вариант, вообще то, тоже должен работать, но только для случая wxEVT_COMMAND_MENU_SELECTED, так как wxEventType есть на самом деле int const и "побитовое или" для wxEVT_COMMAND_MENU_SELECTED и wxEVT_COMMAND_BUTTON_CLICKED даст wxEVT_COMMAND_MENU_SELECTED.


Автор: mes 18.5.2009, 10:00
Цитата(korbian @  18.5.2009,  08:50 Найти цитируемый пост)
 и "побитовое или" для wxEVT_COMMAND_MENU_SELECTED и wxEVT_COMMAND_BUTTON_CLICKED даст wxEVT_COMMAND_MENU_SELECTED.

боюсь эта фраза может ввести в заблуждение, поэтому для простоты уточню, что 
 применение операции "или" к объектам упомянутого типа, даст не тот результат, что ожидали.


Автор: korbian 18.5.2009, 11:11
mes, согласен с уточнением. smile 

Автор: Static 18.5.2009, 15:44
Спасибо за ответ smile Я знаю, что делает операция "побитовое или" - это шутка была, вобще-то.
Раз нельзя - значит нельзя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)