Ветеран
Сообщения: 1180
Благодарности: 279
|
Профиль
|
Отправить PM
| Цитировать
кнопка посылает WM_COMMAND: wparam=ID, lparam=hwnd. Дальше первый поймавший сообщение находит у приславшего указатель на TControl и отправляет ему обратно сообщение CM_COMMAND ( = 0x3000 + WM_COMMAND), которое и обрабатывается самой же кнопкой (её обёрткой VCL).
Скорее всего таймер использует сообщение WM_TIMER. Если при этом для вычисления оставшегося кол-ва секунд используется формула GetTickCount() - start_time (а таймер только для обновления экрана), то фокус не прокатит. Если используется аргумент wparam сообщения WM_TIMER, то достаточно один раз послать WM_TIMER с wparam=GetTickCount()+8000. Если сообщение таймера используется для увеличения счётчика (на единицу), значит надо послать сколько нужно раз это сообщение. Ещё можно изменить период таймера функцией SetTimer. В любом случае понадобится ID таймера и параметр lparam, который он использует, а их можно узнать только поймав "родное" сообщение WM_TIMER.
|
Отправлено: 22:39, 16-02-2010
| #11
|