Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.44.108] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Кому довелось разобраться с внутренним механизмом организации обработчика OnTimer(), расcкажите, pls, какие сообщения и кому посылает система при наступлении события от таймера. Особенно интересно, что делает система, когда форма на которой "лежит" таймер теряет фокус. У меня такое ощущение, что при потере фокуса, события от таймера начинают сыпаться в адрес активного окна. |
Сообщ.
#2
,
|
|
|
Разобрался.
WM_TIMER от фокуса не зависит. Сообщение всегда посылается окну, которое создало таймер, вызов обработчика тоже однозначно задан адресом при регистрации таймера (см. callback). Из-за некорректной обработки события OnPaint в форме, которая ловила фокус возникал вечный цикл, непрерывно сыпались WM_PAINNT, не оставляя времени для работы таймера, поэтому складывалось впечатление, что таймер стал работать на другую форму. |