logo search
Литература_1 / photon_old

Приём qnx-сообщений

Чтобы получать события от Photon, библиотечные функции виджета выполняют безоговорочный MsgReceive(), помещающий принятое событие в буфер событий контекста приложения. Если сообщение не является событием Photon'а, оно отвергается, пока Вы не зарегестрировали в Вашем приложении некую процедуру обработки ввода (или обработчик ввода).

 Вы можете создать Ваш собственный канал и вызвать функцию MsgReceive() в нём, но помните, что Ваше приложение и его интерфейс будут блокированы до тех пор, пока процесс не пришлёт сообщение. Лучше использовать обработчик ввода, как это описано в настоящем разделе.

Обработчик ввода отвечает за обработку сообщений, принятых приложением от конкретного процесса. Когда Вы регистрируете обработчик библиотечными функциями виджета, Вы идентифицируете rcvid, с которым соединён обработчик ввода.

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

Вы можете зарегистрировать неопределённый обработчик ввода, определив в качестве rcvid нулевое значение. Такой обработчик вызывается, когда приложение получает: