Интерфейс клавиатуры диалогового окна
Система для диалоговых окон предусматривает специальный интерфейс клавиатуры, который выполняет специальную обработку нескольких клавиш. Интерфейс создает сообщения, которые соответствуют некоторым кнопкам в диалоговом окне, или изменяет фокус ввода данных из одного органа управления в другой. Ниже перечислены клавиши используемые в этом интерфейсе и их соответствующие действия.
| Клавиша | Действие |
|---|---|
| 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. Когда блок диалога имеет линейки прокрутки, приложение должно предоставить для них дополнительный интерфейс клавиатуры.
| Обратите внимание! на то, что интерфейс мыши для прокрутки доступен, когда система включает в себя мышь. |