为什么 setTimer 不起作用?

Ras*_*yak 1 c winapi timer visual-studio-2010

我有以下程序。我想知道如何setTimer运作。因此,我编写了一个程序,但无法理解为什么 TimerProc 函数没有被调用。为什么?还需要做什么来触发 setTimer/TimerProc。请帮忙。

#include <windows.h>
#include <stdio.h>

VOID CALLBACK TimerProc(
    HWND hwnd,  // handle of window for timer messages 
    UINT uMsg,  // WM_TIMER message
    UINT idEvent,   // timer identifier
    DWORD dwTime    // current system time
   ) {
      printf("from callback\n");

   }
int main(int argc, char *argv[])
{
   UINT timerid = SetTimer(NULL,1,1000,TimerProc);/*changed the time from 1 to 1000, but no effect*/
   printf("timerid %d\n",timerid); 
   int i,j;

      //delay loop, waiting for the callback function to be called
   for(j=0;j<0xffffffff;j++);
   /*{
   printf("%d\n", j);
   }*/

   printf("done \n");
  system("PAUSE");  
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

Rog*_*and 5

计时器通过 Windows 消息队列工作,并且您有一个控制台应用程序。

如果您创建一个基本的 Win32 应用程序,以便获得一个窗口和一个消息循环,那么当 DefWndProc() 调用捕获 WM_TIMER 消息时,它将在此处执行回调。当然你也可以自己捕获WM_TIMER。