Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / SetTimer / 9 сообщений из 9, страница 1 из 1
25.10.2007, 17:10:31
    #34895098
MacKintosh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
Я обращаюсь к функции SetTimer
Код: plaintext
1.
SetTimer(NULL,  0 , 1 ,&(TIMERPROC)SignOfLifeProc);
Процедура SignOfLifeProc выглядит просто:
Код: plaintext
1.
2.
3.
4.
5.
void CALLBACK SignOfLifeProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
		int i =  4 ;
		i++;
}
:
В случае если я помещаю следующую строчку сразу после SetTimer, SignOfLifeProc вызывается:
Код: plaintext
	::MessageBox(NULL, "timer", "SMS", MB_OK);
В сдучае если этой строчки нет, SignOfLifeProc игнорируется. Что бы это могло быть?
...
Рейтинг: 0 / 0
25.10.2007, 17:17:44
    #34895138
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
MacKintoshЯ обращаюсь к функции SetTimer
В случае если я помещаю следующую строчку сразу после SetTimer, SignOfLifeProc вызывается:
Код: plaintext
	::MessageBox(NULL, "timer", "SMS", MB_OK);
В сдучае если этой строчки нет, SignOfLifeProc игнорируется. Что бы это могло быть?

Это может быть отсутствие очереди сообщений как таковой. Вам надо изучить правила работы с очередью сообщений Windows. Почитайте азы по WinAPI.
...
Рейтинг: 0 / 0
25.10.2007, 17:27:48
    #34895185
MacKintosh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
Анатолий Широков
Это может быть отсутствие очереди сообщений как таковой.
Ну и откуда она берётся, если всё, что я делаю это добавляю вызов MessageBox?
...
Рейтинг: 0 / 0
25.10.2007, 17:32:58
    #34895215
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
MessageBox как полноценное окно имеет ассоциированный с ним обработчик сообщения, где по default-у обрабатываются все оконные сообщения, в том числе и WM_TIMER.
...
Рейтинг: 0 / 0
25.10.2007, 17:42:40
    #34895263
MacKintosh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
Спасибо. То есть если в качестве hWnd я указываю NULL, таймер будет обработан очередью сообчений первого попавшегося окна. А если такового нет, то ...
...
Рейтинг: 0 / 0
26.10.2007, 11:30:28
    #34896777
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
MacKintosh пишет:
> Спасибо. То есть если в качестве hWnd я указываю NULL, таймер будет
> обработан очередью сообчений первого попавшегося окна. А если такового
> нет, то ...

Таймер без окна обрабатывается посылкой сообщения WM_TIMER без окна.
Оно обрабатывается в DefWindowProc (которому должны передаваться все
необработанные в приложении сообщения) и оттуда вызывается твоя процедура.
Если очереди сообщений нет, DefWindowProc не вызывается и соотв. таймер не
работает. Но ты можешь вызвать DefWindowProc сам, когда наступит время таймера :-)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.10.2007, 14:03:05
    #34897424
MacKintosh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
MasterZiv
Но ты можешь вызвать DefWindowProc сам, когда наступит время таймера :-)

Не врубаюсь... Это что - с часами стоять?
...
Рейтинг: 0 / 0
26.10.2007, 15:29:46
    #34897810
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
MacKintosh пишет:
> Но ты можешь вызвать DefWindowProc сам, когда наступит время таймера :-)
> Не врубаюсь... Это что - с часами стоять?

Ага ! С секундомером !
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.10.2007, 15:35:08
    #34897842
MacKintosh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetTimer
MasterZiv
MacKintosh пишет:
> Но ты можешь вызвать DefWindowProc сам, когда наступит время таймера :-)
> Не врубаюсь... Это что - с часами стоять?

Ага ! С секундомером !
Posted via ActualForum NNTP Server 1.4
Блестящая идея!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / SetTimer / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]