|
|
| Новости |
Глава 6. Создание акселераторовАкселератор - это оперативная клавиша или комбинация клавиш, которые пользователь нажимает для выполнения вашей прикладной программой какого-либо действия. Он заменяет команду меню и, ана- логично команде меню, создает сообщение WM_COMMAND или WM_SYSCOMMAND, которое указывает прикладной программе, что делать дальше. Обычно акселераторы создаются для дублирования команд всплы- вающих меню. Например, если вы откроете в большинстве прикладных программ Windows меню Edit (Редактирование), то увидите следующие акселераторы: Shift+Del (команда Cut), Shift+Ins (команда Paste) и Ctrl+Ins (команда Copy).
Примечание: Подробнее об использовании акселераторов с
командами меню рассказывается в Главе 5.
+-----------------------------------+
¦___________________________________¦
+-----------------------------------¦
¦ Cut Shift+Del ¦
¦ Copy Ctrl+Ins ¦
¦ Paste Shift+Ins ¦
+-----------------------------------¦
¦ Clear ¦
¦ Delete ¦
+-----------------------------------+
Рис. 6.1 Окно Edit с акселераторами
Определения акселераторов записываются в таблице акселерато-
ров (ресурс акселератора). Каждая запись в таблице представляет
собой акселератор, определяющий сочетание клавиш, которые должен
нажать пользователь для генерации команды. При желании вы можете
создать несколько таблиц акселераторов (или ресурсов) для различ-
ных частей меню.
Пакет разработчика ресурсов предоставляет вам редактор аксе-
лераторов, который облегчает создание и редактирование акселера-
торов для прикладной программы. При работе с акселераторами вы-
полняются следующие основные задачи:
- запуск редактора меню;
- запуск редактора акселераторов;
- настройка таблицы акселераторов и проверка на дублирование
клавиш;
- сохранение таблицы акселераторов.
Первая задача, запуск редактора меню, выводит связанное с
меню акселераторы, с которыми вы можете работать. Вторая задача,
запуск редактора акселераторов, позволяет вывести таблицу акселе-
раторов, которую вы можете настроить. Третья задача, сохранение
акселераторов, выполняется автоматически при сохранении проекта.
Перед тем, как обсудить эти задачи, мы покажем вам, как ор- ганизованы средства редактора акселераторов и его экран. Следую- щие разделы охватывают четыре основных задачи, выполняемые для создания акселератора. После этого описывается проверка дублируе- мых сочетаний клавиш, описание редактирования записи ресурса ак- селератора и приводится пример создания таблицы акселераторов. Если вы откроете демонстрационный проект RWPDEMO.RC и дважды щелкните кнопкой "мыши" на ресурсе акселератора. Пакет разработ- чика ресурсов выводит следующую таблицу: +---------------------------------------------------------------+ ¦ - ¦ ACCELERATORS: acc_Main ¦ ^ ¦ v ¦ +---------------------------------------------------------------¦ ¦+-------------------------------+ ¦ acc_Main ¦^¦ ¦¦ Command ¦ +--------------------------+-¦ ¦¦+-------------++--------------+¦ ¦_VK_BACK 24325____________¦_¦ ¦¦¦ ¦¦ 24325 ¦¦ ¦ VK_DELETE 24320 ¦_¦ ¦¦+-------------++--------------+¦ ¦ VK_INSERT 24321 ¦_¦ ¦+-------------------------------+ ¦ VK_INSERT 24322 ¦_¦ ¦+-------------------------------+ ¦ VK_F1 141 ¦_¦ ¦¦ Key ¦ ¦ VK_F2 142 ¦_¦ ¦¦+-------------+ ¦ ¦ ¦_¦ ¦¦¦ VK_BACK ¦ ¦ ¦ ¦_¦ ¦¦+-------------+ ¦ ¦ ¦_¦ ¦+-------------------------------+ ¦ ¦_¦ ¦+-------------------------------+ ¦ ¦_¦ ¦¦ Key type ¦ ¦ ¦_¦ ¦¦ ¦ ¦ ¦_¦ ¦¦ > Ascii <* Virtual key ¦ ¦ ¦_¦ ¦¦ ¦ ¦ ¦_¦ ¦+-------------------------------+ ¦ ¦_¦ ¦+-------------------------------+ ¦ ¦_¦ ¦¦ Modifiers ¦ ¦ ¦_¦ ¦¦ ¦ ¦ ¦_¦ ¦¦ V¦ Ascii ¦ Shift ¦ Control ¦ ¦ ¦_¦ ¦¦ -+ -+ -+ ¦ ¦ ¦_¦ ¦¦ V¦ Invert menu item ¦ ¦ ¦_¦ ¦¦ -+ ¦ ¦ ¦_¦ ¦+-------------------------------+ ¦ ¦_¦ ¦ ¦ +-¦ ¦ ¦ ¦v¦ +---------------------------------------------------------------+Риc. 6.2 Таблица акселераторов RWPDEMO в редакторе акселера- торов Command - команда; Key - клавиша; Key type - тип клавиши; Ascii - клавиша с кодом Ascii; Virtual key - виртуальная клавиша; Modifiers - модификаторы; Invert menu item - инвертирование эле- мента меню. |
![]()
(с) Все права защищены. По всем интересующим вопросам прошу писать электронный адрес |