2016-10-26 9 views
1

У меня довольно нормальное приложение MFC SDI.MFC «Скрытые» или «По умолчанию» Функциональные клавиши ускорителей?

Недавно я начал использовать вещи из нового пакета функций MFC (например, CMFCToolbar), и после всех этих изменений я вижу некоторое необъяснимое поведение в быстрых клавишах.

Кажется, что у некоторых идентификаторов ресурсов есть функциональные клавиши быстрого доступа (например, F6), но я не могу узнать, как это работает, или как отключить его.

Например, если я наведите курсор мыши ID_ABC на панели инструментов, я вижу подсказку, как:

ABC (F2) ли действие ABC

Я не вижу VK_F2 где-нибудь в таблице ускорителя, или где угодно вообще. Я также не могу найти (F2) в любом месте решения. Все это кажется мне очень странным. Нажатие F2 действительно делает ABC.

Если я удалю всю таблицу ускорителей, это, по-видимому, «исправить» проблему, но тогда, конечно, у меня нет ускорителей. Как только я снова добавлю ускоритель, проблема снова появится.

Обычно, когда я сталкиваюсь с этими вещами, я, кажется, одинок, и причина проблемы обычно «далека», вроде как приземление в какой-то случайной функции после плохого доступа к памяти и высказывания , "почему я здесь"??

Но если кто-нибудь об этом знает, спасибо!

ответ

2

Просто загляните в таблицу ускорителей в файл ресурсов вашего приложения. Да, многие стандартные команды имеют назначенные ключи ускорителя (например, Ctlr + S сопоставляется с командой File Save). Вы можете удалить команды, которые вы не хотите (отдельно, а не всю таблицу ускорителей). Приложение, «запоминающее» старые назначения таблицы ускорителей (или не работающие с новыми), может быть связано с сохранением их в реестре. Перейдите туда и удалите дерево «Workspace» для своего приложения, а затем снова запустите.

Этикетки элементов меню также должны содержать ярлык, разделенный вкладкой (например, File &Open\tCtlr+O). Строковые подсказки и всплывающие подсказки создаются строковым ресурсом с тем же идентификатором, что и элемент меню или панели инструментов. Их можно создавать и редактировать в редакторе меню или в редакторе строк. Два элемента разделяются символом новой строки.

+0

С вопросом: * «Я не вижу VK_F2 в любом месте таблицы ускорителей» *. – IInspectable

+0

Для справок в будущем, записи в реестре были проблемой, спасибо! –