请问各位大哥:   MFC中的SetTimer函数的第三个参数有什么用!!谢谢!!最好能有个例子!1感激不尽!!!

解决方案 »

  1.   

    那是回调函数
    写一个如下格式的回调函数void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
      

  2.   

    定时器的使用:三种方法
    如果您需要在整个程序执行期间都使用定时器,那么您将得从WinMain函数中或者在处理WM_CREATE消息时呼叫SetTimer,并在退出WinMain或响应WM_DESTROY消息时呼叫KillTimer。根据呼叫SetTimer时使用的参数,可以下列三种方法之一使用定时器。
    方法一
    这是最方便的一种方法,它让Windows把WM_TIMER消息发送到应用程序的正常窗口消息处理程序中,SetTimer呼叫如下所示:
    SetTimer (hwnd, 1, uiMsecInterval, NULL) ;        
    第一个参数是其窗口消息处理程序将接收WM_TIMER消息的窗口句柄。第二个参数是定时器ID,它是一个非0数值,在整个例子中假定为1。第三个参数是一个32位无正负号整数,以毫秒为单位指定一个时间间隔,一个60,000的值将使Windows每分钟发送一次WM_TIMER消息。
    您可以通过呼叫
    KillTimer (hwnd, 1) ;方法二
    设定定时器的第一种方法是把WM_TIMER消息发送到通常的窗口消息处理程序,而第二种方法是让Windows直接将定时器消息发送给您程序的另一个函数。
    SetTimer (hwnd, iTimerID, iMsecInterval, TimerProc) ;方法三
    设定定时器的第三种方法类似于第二种方法,只是传递给SetTimer的hwnd参数被设定为NULL,并且第二个参数(通常为定时器ID)被忽略了,最后,此函数传回定时器ID:
    iTimerID = SetTimer (NULL, 0, wMsecInterval, TimerProc) ;        
    如果没有可用的定时器,那么从SetTimer传回的iTimerID值将为NULL。
    KillTimer的第一个参数(通常是窗口句柄)也必须为NULL,定时器ID必须是SetTimer的传回值:
    KillTimer (NULL, iTimerID) ;
      

  3.   

    统一,mfc中可以不用回到函数