[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Программирование: Разработка и отладка программ


Применение функций callback

Приложения, работающие с методами ввода, должны содержать функции callback, предназначенные для взаимодействия редактора метода ввода (IMED) с пользователями. Для некоторых методов ввода функции callback не нужны, а для других - необходимы. Например, для работы с методами ввода однобайтовых символов функции callback не нужны, в то время как метод ввода японских символов активно работает с ними в ходе предварительной компоновки. Предварительная компоновка позволяет обработать символы до их передачи в приложение.

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

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

В некоторых случаях метод ввода должен выполнить обратный вызов клиента. Для каждого из них определена своя функция callback. Клиент указывает, какую функцию callback следует вызвать в каждом случае.

Существует три типа функций callback:

Инициализация функций callback

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

Функции callback можно вызывать до передачи управления из функции IMCreate в вызывающую программу. Обычно функция IMTextStart вызывается для определения размера буфера предварительной компоновки.

Связанная информация

Глава 16, Поддержка национальных языков .

Функции IMAuxCreate, IMAuxDestroy, IMAuxDraw, IMAuxHide, IMBeep, IMIndicatorDraw, IMIndicatorHide, IMTextCursor, IMTextDraw, IMTextHide, IMTextStart, IMIoctl.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]