Хотите ли вы событие, когда ваше меню открывается? Используйте EVT_MENU_OPEN(func)
(wxMenuEvent
). Но это не совсем точно. Как сказано в документации, она отправляется только один раз, если вы открываете меню. Для другого события вы должны закрыть его и снова открыть другое меню. Т.е. между ними вы можете открыть другие меню (при наведении курсора на другие элементы в строке меню), и событие больше не будет отправлено.
Для чего тебе это нужно? Вероятно, есть другой способ сделать это, вместо прослушивания такого рода событий.
Если вы хотите событие для всех пунктов меню, используйте EVT_MENU_RANGE(id1, id2, func)
(используется wxCommandEvent
). Все идентификаторы, начиная с id1
до id2
включительно, будут подключены к данному обработчику событий. Использование диапазона вместо подключения каждого отдельного элемента обеспечит лучшую производительность, поскольку в списке обработчиков событий меньше элементов.