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


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

Клавиша Действие
ALT+mnemonic Перемещает фокус ввода данных в первый орган управления (имеющий стиль WS_TABSTOP) после статического органа управления, содержащего заданную мнемоническую схему.
DOWN Перемещает фокус ввода данных в следующий орган управления в группе.
ENTER Отправляет сообщение WM_COMMAND процедуре диалогового окна.  Параметр wParam устанавливается в IDOK или в идентификатор заданной по умолчанию командной кнопки.
ESC Отправляет сообщение WM_COMMAND процедуре диалогового окна. Параметр wParam устанавливается в IDCANCEL.
LEFT Перемещает фокус ввода данных в предыдущий орган управления группе.
mnemonic Перемещает фокус ввода данных в первый орган управления (имеющий стиль WS_TABSTOP) после статического органа управления, содержащего указанную мнемоническую схему.
RIGHT Перемещает фокус ввода данных в следующий орган управления в группе.
SHIFT+TAB Перемещает фокус ввода данных в предыдущий орган управления, который имеет стиль. WS_TABSTOP.
TAB Перемещает фокус ввода данных в следующий орган управления, который имеет стиль WS_TABSTOP.
UP Перемещает фокус ввода данных в предыдущий орган управления в группе.

Система автоматически предоставляет интерфейс клавиатуры для всех модальных диалоговых окон. Она не предусматривает интерфейс для немодальных блоков диалога, если приложение не вызывает функцию IsDialogMessage, чтобы отфильтровать сообщения в своем главном цикле обработки сообщений. Это означает, что приложение должно переправить сообщение в IsDialogMessage немедленно после извлечения  сообщения из очереди сообщений. Функция обрабатывает сообщения, если они - для диалогового окна и возвращает ненулевое значение, чтобы указать, что сообщение было обработано и не должно передаваться в функцию TranslateMessage или DispatchMessage.

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

Обратите внимание! на то,  что интерфейс мыши для прокрутки доступен, когда система включает в себя мышь.
Назад в оглавление темы
На главную страницу темы

Hosted by uCoz