TranslateAccelerator и отключенные пункты меню

В моем приложении я включаю / отключаю элементы меню в зависимости от контекста — и если текстовая область имеет фокус, я отключаю ускорители, которые будут конфликтовать с клавишами навигации (например, Ctrl-Left / Right).

В соответствии с Документация Microsoft:

Если акселератор имеет тот же идентификатор, что и пункт меню, а пункт меню отображается серым цветом или отключен, акселератор отключается и не генерирует сообщение WM_COMMAND или WM_SYSCOMMAND.

Однако, если связанный ускоритель меню все еще находится в таблице ускорителей, TranslateAccelerator по-прежнему возвращает true, несмотря на то, что не отправляет никакого сообщения (таким образом, «съедая» событие клавиатуры).

Мне интересно, есть ли способ определить, действительно ли TranslateAccelerator отправил сообщение? Я пытаюсь избежать перестроения таблицы акселераторов при каждом включении или отключении пункта меню.

3

Решение

Задача ещё не решена.

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

Других решений пока нет …

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