就是settimer()函数怎么用,就是第三个参数用函数指针,我不知道在vc下怎么个用法,谁可以举个例子看看

解决方案 »

  1.   

    如果是NULL则根据你程序的中OnTimer函数执行
    如果是一个CALLBACK的函数 那么执行该函数
      

  2.   

    如果是用CWnd::SetTimer,
    最简单的做法是, 映射 WM_TIMER消息即可. 此时, 第三个参数设置为NULL就可以了.如果使用第三个参数, 则自己写一个原型为, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) 的函数.
    然后将这个函数地址作为第三个参数.
      

  3.   

    如果是映射WM_TIMER消息,即OnTimer函数来处理每一时间段内的行为。只需
    SetTimer(IDC_TIMER,1000,NULL),IDC_TIMER是计时器资源的ID,1000表示每秒触发一次。
    如果要使用第三个参数,如楼上所说,自己编写CALLBACK函数,把函数地址作为第三个参数即可。
      

  4.   

    to  coldname(重阳真人)
    void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) 的函数.这中函数怎么定义
      

  5.   

    我这样做了但是有错
    error C2664: 'SetTimer' : cannot convert parameter 3 from 'void (void)' to 'void (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,unsigned long)'
          None of the functions with this name in scope match the target type
      

  6.   

    void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD)这个我不懂
      

  7.   

    如果你用的是MFC,此参数用0就可以了
    重载WM_TIMER
    直接在OnTimer()中写你需要的东东回调函数的定义应该定义成这样
    void CALLBACK TimerProc(
       HWND hWnd,      // handle of CWnd that called SetTimer
       UINT nMsg,      // WM_TIMER
       UINT nIDEvent,   // timer identification
       DWORD dwTime     // system time
    )