TranslateAccelerator и отключенные пункты меню
В моем приложении я включаю / отключаю элементы меню в зависимости от контекста - и, если текстовая область имеет фокус, я отключаю ускорители, которые будут конфликтовать с клавишами навигации (например, Ctrl-Left/Right).
Согласно документации Microsoft:
Если акселератор имеет тот же идентификатор, что и пункт меню, а пункт меню отображается серым цветом или отключен, акселератор отключается и не генерирует сообщение WM_COMMAND или WM_SYSCOMMAND.
Однако, если связанный акселератор меню все еще находится в таблице акселераторов, TranslateAccelerator по-прежнему возвращает true, несмотря на то, что не отправляет никакого сообщения (таким образом, "съедая" событие клавиатуры).
Мне интересно, есть ли способ определить, действительно ли TranslateAccelerator отправил сообщение? Я пытаюсь избежать перестроения таблицы акселераторов при каждом включении или отключении пункта меню.