Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > таймер в OCX |
Автор: -Sman- 11.11.2005, 13:58 |
Собстно - сам вопрос в сабже. Есть некий activeX (неоконный). В него надо добавить таймер. Но ведь для таймера используется static CALLBACK процедура. Из нее можно получить доступ к объектам класса? И есть ли хендл (HWND) у ocx? Понимаю - вопросы глуповатые..но все же - помогите разобраться... |
Автор: Dray 17.11.2005, 23:36 | ||||
Например в VC++ при использовании библиотеки ATL можно выбирать флажком при создании компанента будет ли он оконным или нет. Можно использовать функцию API SetTimer.
В первый параметр можно подстасить NULL, тогда второй будет игнорироваться. |
Автор: SeregaLBN 13.12.2005, 18:01 |
можно использовать QueueUserWorkItem или мультимедиа таймер - timeSetEvent но в этих обоих примерах - модуль должен собираться как многопоточный PS: ф-ция QueueUserWorkItem - работает начиная с 2000ки |
Автор: JoyEx 13.12.2005, 19:10 | ||
1) Если у тебя GUI поток, то он может получить WM_TIMER, первичный поток всегда GUI даже, если у него нету окон. 2) Говоришь ![]() 3) В первом предложении ты сам ответил на последний вопрос. ![]() |
Автор: SeregaLBN 13.12.2005, 20:14 | ||
SetTimer(NULL, 0, 100, MyFunc) вернёт уникальный id таймера сохраняй его в глобальной переменной типа
в MyFunc придёт этот id ну а выбрав из g_map свой экземпляр, делаешь все что тебе требуется... |