Программирование на С++. Рейзлин В.И. - 34 стр.

UptoLike

Составители: 

36
Событие от клавиатуры может иметь, например, такую структуру:
struct KeyDownEvent
{union{int keyCode;
union{char charCode;
char scanCode;
};
};
};
evMessage событие-сообщение от объекта.
Для события от объекта (evMessage) задаются два параметра :
command код команды, которую необходимо выполнить при появ-
лении данного события;
infoPtr передоваемая с событием (сообщение) информация.
struct MessageEvent
{int command;
void infoPtr;
};
Методы обработки событий
Следующие методы необходимы для организации обработки собы-
тий (названия произвольны).
GetEvent формирование события;
Execute реализует главный цикл обработки событий. Он постоянно
получает событие путем вызова GetEvent и обрабатывает их с помощью
HandleEvent. Этот цикл завершается, когда поступит событие «конец».
HandleEvent обработчик событий. Обрабатывает каждое событие
нужным для него образом. Если объект должен обрабатывать определен-
ное событие (сообщение), то его метод HandleEvent должен распознавать
это событие и реагировать на него должным образом. Событие может рас-
познаваться, например, по коду команды (поле command).
ClearEvent очищает событие, когда оно обработано, чтобы оно не
обрабатывалось далее.
Обработчик событий (метод HandleEvent)
Получив событие (структуру типа TEvent), обработчик событий для
класса TDerivedClass обрабатывает его по следующей схеме:
void TDerivedClass::HandleEvent(TEvent& event)
{ //Вызов обработчика событий базового класса
TBaseClass::handleEvent( event );
if( event.what == evCommand ) // Если обработчик событий базового
класса // событие не обработал