Поделиться через


Обработка клавиатуры для элементов управления

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

МетодЫ IOleControl::GetControlInfo и IOleControl::OnMnemonic и метод IOleControlSite::OnControlInfoChanged обрабатывают mnemonics клавиатуры элемента управления. Структура CONTROLINFO описывает акселераторы mnemonic элемента управления, а флаги, передаваемые с ним с помощью метода GetControlInfo , описывают поведение элементов управления с помощью клавиш ВВОД и ESC. При изменении mnemonics элемент управления вызывает OnControlInfoChanged , чтобы контейнер смог перезагрузить структуру при необходимости.

Если элемент управления активен, он также является элементом управления с фокусом. Поскольку элементы управления активируются и деактивируются между активными и активными состояниями пользовательского интерфейса, элемент управления вызывает IOleControlSite::OnFocus , чтобы сообщить контейнеру таких изменений.

Кроме того, при активном пользовательском интерфейсе элемент управления будет иметь первый шанс обработать все нажатия клавиш. Чтобы предоставить контейнеру возможность обрабатывать нажатие клавиш перед элементом управления, элемент управления вызывает IOleControlSite::TranslateAccelerator. Если контейнер не обрабатывает нажатие клавиш, элемент управления обрабатывает его.

Элементы управления ActiveX