Поделиться через


Редактор акселератора (C++)

Таблица акселератора — это ресурс Windows C++, содержащий список ключей акселератора, известных как сочетания клавиш, и идентификаторы команд, связанные с ними. В программе можно использовать несколько таблиц сочетаний клавиш.

Обычно сочетания клавиш используются для ускорения доступа к командам программы, также доступным в меню или на панели инструментов. Но таблицу сочетаний клавиш можно также использовать, чтобы определить сочетания клавиш для команд, с которыми не связаны никакие объекты пользовательского интерфейса.

Совет

При использовании редактора акселератора щелкните правой кнопкой мыши контекстное меню частых команд. Доступные команды зависят от объекта, на который наведен указатель мыши.

Для подключения команд сочетаний клавиш к коду можно использовать представление классов . Список предварительно определенных ключей акселератора см. в разделе "Ключи акселератора".

Примечание.

Windows не позволяет создавать пустые таблицы акселераторов. Если вы создадите таблицу сочетаний клавиш, не содержащую записей, она будет автоматически удалена при сохранении.

Свойства акселератора

Свойства акселератора можно задать в окно свойств в любое время. Редактор акселераторов также можно использовать для изменения свойств акселератора в таблице акселераторов. Изменения, внесенные с помощью окна свойств или редактора акселератора, имеют одинаковый результат, изменения немедленно отражаются в таблице акселератора.

Свойство ID ссылается на каждую запись таблицы акселератора в коде программы. Эта запись представляет собой значение команды, которое программа получает, когда пользователь нажимает клавишу акселератора или сочетание клавиш. Чтобы сделать акселератор таким же, как элемент меню, сделайте идентификатор таким же, если идентификатор таблицы акселератора совпадает с идентификатором ресурса меню.

Каждый идентификатор акселератора имеет три свойства: модификатор, ключ и тип

Свойство Modifier задает сочетания клавиш управления для акселератора .

Примечание.

В окне "Свойства" свойство Модификатора отображается как три отдельных логических свойства, все из которых можно управлять независимо: ALT, CTRL и SHIFT.

Ниже приведены юридические записи для свойства Modifier в таблице акселератора :

значение Description
нет Пользователь нажимает только значение ключа .

Это значение наиболее эффективно используется со значениями ASCII/ANSI 001–026, которые интерпретируются как ^A через ^Z (CTRL+A через CTRL+Z).
Alt Пользователь должен нажать клавиши ALT перед значением ключа .
Ctrl Пользователь должен нажать клавиши CTRL перед значением клавиши, недопустимой с типом ASCII.
SHIFT Пользователь должен нажать клавишу SHIFT перед значением ключа .
CTRL+ALT Пользователь должен нажать клавиши CTRL и ALT перед значением клавиши, недопустимой с типом ASCII.
CTRL+SHIFT Пользователь должен нажать клавиши CTRL и SHIFT перед значением клавиши, недопустимой с типом ASCII.
ALT+SHIFT Пользователь должен нажать клавиши ALT и SHIFT перед значением ключа, недопустимым с типом ASCII.
CTRL+ALT+SHIFT Пользователь должен нажать клавиши CTRL, ALT и SHIFT перед значением клавиши, недопустимой с типом ASCII.

Свойство Key задает фактический ключ, используемый в качестве акселератора.

Ниже приведены юридические записи для свойства Key в таблице акселератора:

значение Description
Целое число от 0 до 255 в десятичном формате. Значение определяет, обрабатывается ли значение как ASCII или ANSI следующим образом:

— Однозначные числа всегда интерпретируются как соответствующий ключ, а не как значения ASCII или ANSI.
— Значения от 1 до 26, когда предшествуют нулю, интерпретируются как ^A до ^Z, который представляет значение ASCII букв алфавита при нажатии клавиши CTRL, удерживаемой нажатой.
— Значения от 27 до 32 всегда интерпретируются как трехзначные десятичные значения 027–032.
— Значения от 033 до 255, предшествующие 0 или нет, интерпретируются как значения ANSI.
Один символ клавиатуры. Верхний регистр A - Z или цифры 0 – 9 могут быть значения ASCII или виртуальных ключей. Любой другой символ — только ASCII.
Один символ клавиатуры в диапазоне A - Z (только в верхнем регистре), предшествующий курсору (^), например ^C. Этот параметр вводит значение ASCII ключа при нажатии клавиши CTRL, удерживаемой нажатой.
Любой допустимый идентификатор виртуального ключа. Раскрывающийся список "Ключ" в таблице акселератора содержит список стандартных идентификаторов виртуальных ключей.

Примечание.

При вводе значения ASCII параметры свойства Модификатора ограничены. Единственным ключом управления, доступным для использования, является клавиша ALT .

Совет

Ярлык для определения клавиши акселератора заключается в щелчке правой кнопкой мыши записи или нескольких записей в таблице акселератора, а затем нажмите кнопку Next Key Typed и нажмите любую из клавиш или сочетаний клавиш на клавиатуре.

Эта команда Next Key Typed также доступна в меню "Изменить ".

Свойство Type определяет, интерпретируется ли сочетание сочетания клавиш, связанного с идентификатором акселератора, как значение ключа ASCII/ANSI или сочетание виртуального ключа (VIRTKEY).

  • Если свойство Type равно ASCII, свойство Модификатора может быть None только или Altиметь ускоритель, использующий клавиши CTRL, как указано выше, с ^помощью клавиши.

  • Если свойство Type имеет значение VIRTKEY, допустимо любое сочетание модификаторов и значений ключей.

Примечание.

Если вы хотите ввести значение в таблицу акселераторов и иметь значение, которое рассматривается как ASCII/ANSI, выберите тип для записи в таблице и выберите ASCII из раскрывающегося списка. Однако при использовании команды Next Key Typed в меню "Изменить " для указания ключа необходимо изменить свойство Type с VIRTKEY на ASCIIперед вводом кода ключа .

Таблицы акселераторов

В проекте C++ можно изменить таблицу акселератора непосредственно с помощью редактирования на месте в редакторе акселератора.

Приведенные ниже процедуры относятся к использованию стандартных страниц свойств, однако как в месте редактирования, так и метода страницы свойств имеют одинаковый результат. Изменения, внесенные с помощью страниц свойств или редактирования на месте, немедленно отражаются в таблице акселератора.

Редактирование в таблице сочетаний клавиш

  1. Откройте таблицу акселераторов, дважды щелкнув значок в представлении ресурсов.

  2. Выберите запись в таблице и выберите для активации редактирования на месте.

  3. Выберите из раскрывающегося списка поле со списком или введите его, чтобы внести изменения:

    • Для идентификатора выберите из списка или типа для редактирования.

    • Для модификатора выберите из списка.

    • Для ключа выберите из списка или типа для редактирования.

    • Для типа выберите ASCII или VIRTKEY из списка.

Поиск записи в открытой таблице сочетаний клавиш

  1. Откройте таблицу акселераторов, дважды щелкнув значок в представлении ресурсов.

  2. Выберите головку столбца, чтобы отсортировать содержимое столбца в алфавитном порядке. Например, выберите идентификатор , чтобы отобразить все идентификаторы в таблице акселератора в алфавитном порядке.

    Затем просмотрите список и найдите запись.

Добавление записи в таблицу сочетаний клавиш

  1. Откройте таблицу акселераторов, дважды щелкнув значок в представлении ресурсов.

  2. Щелкните правой кнопкой мыши в таблице акселератора и выберите новый ускоритель или выберите пустую запись строки в нижней части таблицы.

  3. Выберите идентификатор из раскрывающегося списка в поле идентификатора или введите новый идентификатор в поле идентификатора.

  4. Введите ключ, который вы хотите использовать в качестве акселератора, или щелкните правой кнопкой мыши и нажмите кнопку "Следующий ключ", чтобы задать сочетание клавиш, или перейдите в меню "Изменить>следующий тип ключа".

  5. При необходимости измените модификатор и тип и нажмите клавишу ВВОД.

Примечание.

Убедитесь в том, что все определяемые сочетания клавиш уникальны. Для ID_PRINT можно назначить несколько сочетаний клавиш с одним и тем же идентификатором без плохого эффекта, например ctrl+P и F8. Однако сочетание клавиш, назначенное нескольким идентификаторам, не будет работать хорошо, например ctrl+Z, назначенным как ID_SPELL_CHECK, так и ID_THESAURUS.

Удаление записи из таблицы сочетаний клавиш

  1. Откройте таблицу акселераторов, дважды щелкнув значок в представлении ресурсов.

  2. Выберите запись, которую нужно удалить, или удерживайте клавишу CTRL или SHIFT при выборе нескольких записей.

  3. Щелкните правой кнопкой мыши и выберите пункт "Удалить" или выберите пункт меню "Изменить> удаление".

Совет

Вы также можете нажать клавишу DELETE для удаления.

Перемещение или копирование записи таблицы сочетаний клавиш в другой файл описания ресурсов

  1. Откройте таблицы акселератора в файлах скриптов ресурсов и выберите запись, которую вы хотите переместить.

  2. В меню "Изменить" выберите "Копировать" или "Вырезать".

  3. Выберите запись в файле скрипта целевого ресурса и в меню "Изменить " выберите "Вставить".

Примечание.

Для копирования и вставки можно также использовать сочетания клавиш.

Изменение свойств нескольких ключей акселератора

  1. Откройте таблицу акселераторов, дважды щелкнув значок в представлении ресурсов.

  2. Выберите клавиши акселератора, которые нужно изменить, удерживая клавишу CTRL при выборе каждого из них.

  3. Перейдите к окно свойств и введите значения, которые нужно предоставить всем выбранным акселераторам.

Примечание.

Каждое значение модификатора отображается как логическое свойство в окне "Свойства ". При изменении значения модификатора в окне свойств таблица акселераторов обрабатывает новый модификатор как дополнение к любым модификаторам, которые были ранее там. Из-за этого, если заданы какие-либо значения модификатора, необходимо задать все из них, чтобы каждый акселератор совместно использовать одни и те же параметры модификатора .

Требования

Win32

См. также

Resource Editors
Сочетания клавиш