Первый шаг в создании таблицы клавиш-ускорителей во время выполнения программы - это заполнение массива структур ACCEL. Каждая структура в массиве определяет ускоритель в таблице. Определение ускорителя включает в себя его флажки, его клавишу и ее идентификатор. Структура ACCEL имеет нижеследующую форму.
typedef struct tagACCEL { // accl BYTE fVirt; WORD key; WORD cmd; } ACCEL; |
Вы определяете нажатие клавиши ускорителя, определяя код символа ASCII или код виртуальной клавиши в члене key структуры ACCEL. Если Вы устанавливаете код виртуальной клавиши, Вы должны сначала включить флажок FVIRTKEY в член fVirt структуры; в противном случае, система воспринимает код как код символа (буквы или знака) ASCII. Вы можете включить флажок FCONTROL, FALT или FSHIFT, или все три, чтобы комбинировать клавишу CTRL, ALT или SHIFT с нажатием символьных клавиш.
Чтобы создать таблицу клавиш-ускорителей, передайте указатель на массив структур ACCEL в функцию CreateAcceleratorTable. CreateAcceleratorTable создает таблицу клавиш-ускорителей и возвращает дескриптор таблицы.