总结:Timer

MFC中的原型:

 

CWnd::SetTimer

UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );

第一个参数是我们为该timer定义的一个ID。该ID不可为0。

第二个参数是timer的时间间隔,以毫秒为单位,如果是100,则为1/10秒。

第三个参数是一个回调函数的指针。

       当第三个参数为NULL时,WM_TIMER消息将被投递到应用程序的消息队列之中,由OnTimer消息处理器对该消息进行处理。

  当第三个参数不为NULL时,它指定的函数名字可以变化,但是函数的类型必须是下面这样:

      void CALLBACK EXPORT TimerProc(
   HWND hWnd,      // handle of CWnd that called SetTimer
   UINT nMsg,      // WM_TIMER
   UINT nIDEvent   // timer identification
   DWORD dwTime    // system time
   );

SetTimer函数的返回值是我们在第一个参数中指定的timer ID号。如果SetTimer成功创建了一个timer,那么返回值就为非0,否则返回值为0。这也就是为什么我们在第一个参数中指定的timer ID必须为非0值的原因。

根据MSDN上的说法,timer在系统中属于一种受限的全局资源(a limited global resource),因此坚持SetTimer的返回值是否有效(即一个新的timer是否成功)是非常重要的。


你可能感兴趣的:(timer,null,System,callback)