Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Описание таблицы акселераторов

Читайте также:
  1. III. Наименование и описание объекта закупки
  2. Ажурная шаль спицами. Описание.
  3. Библиографическое описание документов в списке использованных источников
  4. Библиографическое описание книги
  5. Библиографическое описание ресурсов сети интернет.
  6. Библиографическое описание сериальных и других продолжающихся ресурсов
  7. Библиографическое описание составной части документа

Таблица акселераторов определяется в файле описания ресурсов приложения в следующем виде:

<Id> ACCELERATORS BEGIN..................... END

Для ссылки на таблицу акселераторов используется идентификатор Id, который не должен совпадать с идентификаторами других ресурсов приложения, таких как строки, диалоги и т. д.

Между операторами BEGIN и END располагаются строки описания акселераторов. Они имеют следующий формат (в квадратных скобках указаны необязательные параметры):

Key, AccId, [KeyType[,]] [NOINVERT] [ALT] [SHIFT] [CONTROL]

Поле Key определяет клавишу, которая будет использована для создания акселератора. Вы можете использовать символ в коде ASCII, заключенный в двойные кавычки (например, "F"), комбинацию символа ASCII со знаком ^ (например, "^S", что соответствует комбинации клавиш <Control+S>), ASCII-код клавиши в виде целого значения, или виртуальный код клавиши (в символьном или цифровом виде).

Поле AccId соответствует значению параметра wParam сообщения WM_COMMAND, которое попадет в функцию окна при использовании акселератора.

Поле KeyType может принимать значения ASCII или VIRTKEY. В первом случае поле Key определяет клавишу с использованием кода ASCII, во втором - с использованием кода виртуальной клавиши. По умолчанию используется значение ASCII.

Если указан параметр NOINVERT, при использовании акселератора соответствующая строка меню не выделяется. По умолчанию строка меню выделяется инвертированием цвета.

Если поле KeyType содержит значение VIRTKEY, можно указывать параметры ALT, SHIFT или CONTROL. В этом случае для акселератора используется комбинация клавиши, указанной параметром Key, и клавиши ALT, SHIFT или CONTROL, соответственно.

 

Пример описания таблицы акселераторов из приложения SMARTPAD:

APP_ACCELERATORS ACCELERATORS BEGIN "N", CM_FILENEW, VIRTKEY, CONTROL "S", CM_FILESAVE, VIRTKEY, CONTROL "O", CM_FILEOPEN, VIRTKEY, CONTROL "Z", CM_EDITUNDO, VIRTKEY, CONTROL "X", CM_EDITCUT, VIRTKEY, CONTROL "C", CM_EDITCOPY, VIRTKEY, CONTROL "V", CM_EDITPASTE, VIRTKEY, CONTROL VK_DELETE, CM_EDITCLEAR, VIRTKEY, CONTROL VK_F1, CM_HELPINDEX, VIRTKEYEND

Здесь описана таблица акселераторов APP_ACCELERATORS, в которой определены девять акселераторов, т. е. девять комбинаций клавиш ускоренного выбора.

Для того чтобы акселератор, состоящий из комбинации символьной клавиши (такой, как "N") и клавиши <Control>, работал вне зависимости от состояния клавиши <Caps Lock>, мы использовали виртуальные коды. Если бы мы использовали коды ASCII, наш акселератор активизировался бы только при использовании заглавных букв (мы могли бы указать строчные буквы, например, "n", в этом случае для активизации акселератора следовало бы использовать строчные буквы).

Из-за того, что клавиша <Caps Lock> может находиться в любом состоянии, лучше работать с виртуальными кодами клавиш, не зависящих от того, являются буквы строчными или прописными.

Напомним, что коды виртуальных клавиш описаны в файле windows.h.


Дата добавления: 2015-09-03; просмотров: 74 | Нарушение авторских прав


Читайте в этой же книге: Перегрузка операций (операторов). Перегрузка операторов инкремента и декремента. Перегрузка оператора индексирования. Перегрузка оператора вызова функции. | Перегрузка операций (операторов). Перегрузка операторов доступа к членам класса. Перегрузка операторов new и delete. Функции преобразования типа. | Полиморфизм и виртуальные функции. Раннее и позднее связывание. Динамический полиморфизм. Виртуальные функции. Виртуальные и невиртуальные функции. | Полиморфизм и виртуальные функции. Применение динамического полиморфизма. Виртуальные деструкторы. Абстрактные классы и чисто виртуальные функции. | Длина самого длинного слова 10 | Самое длинное слово beautiful | Строковые потоки | Состояние формата (ОТНОСИТСЯ К ПОСЛЕДНЕМУ ВОПРОСУ, КОТОРЫЙ 24) | Работа с несовместимыми конструкциями. | Стандартный класс string. Зарезервированные слова и опции меню. |
<== предыдущая страница | следующая страница ==>
Стандартный класс string. Операции ввода-вывода строк.| Специализация шаблонов класса

mybiblioteka.su - 2015-2024 год. (0.006 сек.)