Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 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