Вы можете отправлять сообщения своей основной ветке WM_TIMER. LParam для сообщения - это адрес функции обратного вызова, или вы можете оставить его NULL и обработать его самостоятельно в своем обработчике сообщений.
В этом примере мы отправляем таймер в поток сообщений потока, нет необходимости иметь окно, связанное с таймером.
UINT timer;
VOID CALLBACK Timer(HWND hwnd,
UINT uMsg,
UINT_PTR idEvent,
DWORD dwTime
)
{
KillTimer(0, timer);
}
timer=SetTimer(0, // window handle
0, // id of the timer message, leave 0 in this case
10000, // millis
Timer // callback
);
// pump messages
while (GetMessage) etc...
Обратный вызов Timer будет вызываться DispatchMessage. Этот вопрос напомнил мне о недавнем ONT .