2008-11-18 2 views

ответ

2

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

Для чего это необходимо? Возможно, есть другой способ сделать это, вместо того, чтобы слушать такое событие.

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

+0

Спасибо, что это помогает - иногда мне сложно читать документацию. – PyNEwbie 2008-11-18 22:03:41