.:: Система событий в Miraculix ::.
Для ожидания события используется функция WaitMessage:
call [WaitMessage]
После неё может вызываться стандартный обработчик событий StdHandler:
call [StdHandler]
Конечно он может быть и после всех ваших проверок, но он должен быть в цикле,
потому что он обрабатывает такие события как развернуть/восстановить окно и многие другие.
Далее вы можете проверять, что же это за событие и нужно-ли оно вам вообще.
В Miraculix могут происходить следующие события(не считая сообщения от других приложений):
EventID_Redraw | (1) | - | перерисовка окна | |
EventID_Focus | (2) | - | получение фокуса | |
EventID_LostFocus | (3) | - | потеря фокуса | |
EventID_Close | (4) | - | закрытие | |
EventID_MouseEvent | (5) | - | мышь | |
EventID_Ctrl0 | (10) | - | Пользователь хотел нажать на кнопку, но передумал :) - действие было отменено | |
EventID_Ctrl1 | (11) | - | курсор над кнопкой | |
EventID_Ctrl2 | (12) | - | (кнопка мыши нажата и курсор над кнопкой, но ещё не отпущена) | |
EventID_Ctrl3 | (13) | - | кнопка нажата | |
EventID_Maximize | (14) | - | максимизация окна | |
EventID_Restore | (15) | - | восстановление окна | |
EventID_DoubleClick | (16) | - | двойной клик | |
EventID_Kbd | (20) | - | нажата клавиша на клавиатуре | |
EventID_IPC | (50) | - | межпроцессное взаимодействие | |
Обратите внимание на то, что:
1) Если событие (сообщение) послала система, то идентификатор события всегда находится в bh
2) Параметры могу находится в bl, esi и ebp, в зависимости от типа события
(Впринципе, это по аналогии с Windows)
|