Игнорирование событий клавиатуры


Обработка сообщений клавиатуры, мыши, таймера

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

Синхронизация событий клавиатуры

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

  • Драйвер клавиатуры передает информацию о нажатии клавишв Windows.
  • Windows сохраняет эту информацию (в виде сообщений) в системной очереди сообщений.
  • Затем она передает сообщения клавиатуры, по одному за раз, в очередь сообщений программы, содержащей окно, имеющее фокус ввода (input focus).
  • Затем программа отправляет сообщения соответствующей оконной процедуре(с помощью функцииDispatchMessage).

Смысл этого двухступенчатого процесса – сохранение сообщений в системной очереди сообщений и дальнейшая их передача в очередь сообщений приложения – в синхронизации.

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

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

Замечание.Залог успешной работы с клавиатурой – это знание того, какие сообщения важны для приложения, а какие нет.

Игнорирование событий клавиатуры

Хотя клавиатура является основным источником пользовательского ввода программ для Windows,

  • Приложению не обязательно реагировать на каждое получаемое от клавиатуры сообщение - Windows сама обрабатывает многие сообщения клавиатуры.

Приложению не нужно отслеживать нажатия клавиш, поскольку Windows извещает программу об эффекте, вызванном их нажатием. Например,

  • Когда пользователь выбирает пункт меню, Windows посылает программе сообщение, что выбран пункт меню, независимо от того, был ли он выбран с помощью мыши или клавиатуры.
  • В программах для Windows часто используются быстрые клавиши (keyboard accelerators) для быстрого доступа к часто употребляемым пунктам меню (в качестве быстрых клавиш обычно используют функциональные клавиши или различные комбинации клавиш, такие быстрые клавиши определяются в описании ресурсов программы). Windows сама преобразует быстрые клавиши в командные сообщения меню, приложению не нужно этого делать явно.
  • Окна диалога также имеют интерфейс клавиатуры, но обычно программам не нужно отслеживать клавиатурные события, когда активно окно диалога. Интерфейс клавиатуры обслуживается самой Windows, и Windows посылает сообщения программе о действиях, соответствующих нажимаемым клавишам.
  • В окнах диалога и внутри окон верхнего уровня могут содержаться окна редактирования (edit) для ввода текста (это окна, в которых пользователь набирает строки символов). Windows управляет всей логикой окон редактирования и дает программе окончательное содержимое этих окон, после того, как пользователь завершит ввод текста.


Дата добавления: 2017-01-26; просмотров: 1047;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.