На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Accelerator Tables



An accelerator table consists of an array of ACCEL structures, each defining an individual accelerator. Each ACCEL structure includes the following information:

· The accelerator's keystroke combination.
· The accelerator's identifier.
· Various flags. This includes one that specifies whether Windows is to provide visual feedback by highlighting the corresponding menu item, if any, when the accelerator is used



To process accelerator keystrokes for a given thread, the developer must call the TranslateAccelerator function in the message loop associated with the thread's message queue. The TranslateAccelerator function monitors keyboard input to the message queue, checking for key combinations that match an entry in the accelerator table. When TranslateAccelerator finds a match, it translates the keyboard input (that is, the WM_KEYUP and WM_KEYDOWN messages) into a WM_COMMAND or WM_SYSCOMMAND message and then sends the message to the window procedure of the specified window. The following illustration shows how accelerators are processed.


The WM_COMMAND message includes the identifier of the accelerator that caused TranslateAccelerator to generate the message. The window procedure examines the identifier to determine the source of the message and then processes the message accordingly.
Accelerator tables exist at two different levels in Windows. Windows maintains a single, system-wide accelerator table that applies to all applications. An application cannot modify the system accelerator table. For a description of the accelerators provided by the system accelerator table, see Accelerator Keystroke Assignments.

Windows also maintains accelerator tables for each application. An application can define any number of accelerator tables for use with its own windows. A unique 32-bit handle (HACCEL) identifies each table. However, only one accelerator table can be active at a time for a given thread. The handle of the accelerator table passed to the TranslateAccelerator function determines which accelerator table is active for a thread. The active accelerator table can be changed at any time by passing a different accelerator-table handle to TranslateAccelerator.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Столы Акселератора



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

Нажатие клавиши комбинации акселератора.
Идентификатор акселератора.
Различные флаги. Это включает то которое определяет независимо Windows должен обеспечить визуальную обратную связь выделяя соответствующий пункт меню, если имеется в наличии, когда акселератор использован



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


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

Windows также поддерживает таблицы акселератора для каждого приложения. Приложение может определить любой номер таблиц акселератора для использования со своим собственным окном. Уникальная 32- битовая ручка (HACCEL) идентифицирует каждую таблицу. Тем не менее, только одна таблица акселератора может быть активна за один раз для данной резьбы. Ручка таблицы акселератора пройденного в функцию TranslateAccelerator определяет, что какая таблица акселератора активна для резьбы. Активная таблица акселератора может быть изменена в любое время передавая другую акселератор-табличную ручку на TranslateAccelerator.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz