Таблицы сочетаний клавиш

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

Для обработки нажатия клавиши ускорителя для данного потока, разработчик должен вызывать функцию TranslateAccelerator цикл обработки сообщений, связанный с очередью сообщений потока. Функция TranslateAccelerator контролирует ввод с клавиатуры в очередь сообщений, проверка для сочетаний клавиш, которые совпадают с записью в таблице сочетаний клавиш. Когда TranslateAccelerator найдено, он преобразует ввод с клавиатуры (то есть, WM_KEYUP и WM_KEYDOWN сообщения) в WM_COMMAND или WM_SYSCOMMAND сообщение и затем отправляет сообщение процедуре окна указанного окна. На следующем рисунке показано, как обрабатываются ускорители.

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

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

Система также поддерживает таблицы сочетаний клавиш для каждого приложения. Приложение можно определить любое количество таблиц сочетаний клавиш для использования с собственной windows. Уникальный 32-разрядных ручки (HACCEL) идентифицирует каждую таблицу. Однако только один ускоритель таблицы может быть активным в то время для данного потока. Дескриптор в таблице сочетаний клавиш, переданных в функцию TranslateAccelerator определяет какой таблице сочетаний клавиш активной для потока. В таблице сочетаний клавиш активной может быть изменено в любое время путем передачи дескриптора другой таблицы сочетаний клавиш в TranslateAccelerator.

Index