Win32 API. Быстрые клавиши - Использование таблицы клавиш-ускорителей, созданной во время прогона программы

ОГЛАВЛЕНИЕ

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

Win32 прикладной программный интерфейс (API) позволяет Вам создавать таблицы клавиш-ускорителей во время прогона программы. Шаги, включенные в создание и использование таблицы акселераторов во время прогона программы следующие:

Определение клавиш - ускорителей при помощи заполнения массива структур ACCEL, а затем создание таблицы клавиш-ускорителей, посредством передачи массива в функцию CreateAcceleratorTable.

Активизация таблицы клавиш-ускорителей и обработка сообщений WM_COMMAND, сгенерированных акселераторами.

Уничтожение таблицы клавиш-ускорителей прежде, чем прикладная программа закроется.

Создание таблицы клавиш-ускорителей

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

typedef struct tagACCEL {	// accl
BYTE fVirt;
WORD key;
WORD cmd;
} ACCEL;

Вы определяете нажатие клавиши - ускорителя, при помощи установки кода буквы ASCII или кода виртуальной клавиши в члене key структуры ACCEL. Если Вы определяете код виртуальной клавиши, Вы должны сначала включить флажок FVIRTKEY в члене fVirt; иначе, Windows поймет код как код буквы ASCII. Вы можете включить флажок FCONTROL, FALT или FSHIFT, или все три, чтобы комбинировать с нажатиями клавиш клавиши CTRL, ALT или SHIFT.

Чтобы создать таблицу клавиш-ускорителей, пошлите адрес массива структур ACCEL в функцию CreateAcceleratorTable. CreateAcceleratorTable создает таблицу клавиш-ускорителей и возвращает ее дескриптор.

Обработка клавиш-ускорителей

Процесс загрузки и вызова клавиш - ускорителей, предусмотренных их таблицей, созданной во время прогона программы, аналогичен обработке этих клавиш, предусмотренных ресурсом таблицы клавиш-ускорителей. Для получения дополнительной информации, см. со статьи Загрузка ресурса таблицы клавиш-ускорителей до статьи Обработка сообщения WM_COMMAND.

Разрушение таблицы клавиш-ускорителей

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