Вы можете передать NULL в качестве дескриптора окна и включить функцию обратного вызова в вызов SetTimer
. Это позволит вам получать уведомления по таймеру, не связывая его с конкретным окном.
Если таймер предназначен для использования в отдельном «рабочем» потоке (один без окна), вам все равно нужно будет обработать очередь сообщений для получения уведомлений таймера. Если вы создаете поток, используя объект CWinThread
, это уже обработано для вас в реализации по умолчанию CWinThread::Run
.
Если вы можете обновить свой вопрос, включив в него дополнительную информацию о содержании sender.cpp
, я могу привести более подходящий пример. При этом используется простой Windows API для создания таймера и обработки необходимой очереди отправки.
// Example only.
VOID CALLBACK timerCallback(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
printf("Timer called\n");
}
void SomeFunc()
{
SetTimer(NULL, 1, 1000, timerCallback);
MSG msg;
// msg-pump
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}