默认的CWinThread中没有OnTimer消息响应,怎么自己加进去?

解决方案 »

  1.   

    //计时器函数.h
    friend void  CALLBACK TimeProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime);
    //.cpp
    SetTimer(1,1000*1,TimeProc);//计时器
    void  CALLBACK TimeProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime);
    {
      ……
    }
      

  2.   

    楼主用api函数设置定时器:UINT SetTimer(
    HWND hWnd, // handle of window for timer messages
    UINT nIDEvent, // timer identifier
    UINT uElapse, // time-out value
    TIMERPROC lpTimerFunc // address of timer procedure
    );lpTimerFunc 回调函数的地址,来处里这个Timer事件。如果是NULL,系统将交由OnTimer()来处理这个Timer事件,将hWnd传0试试。
      

  3.   

    好像不行,我试了那么能不能在你的线程里这样处理:while(bStop)
    {
    //do something to save data
    ...Sleep(1000);
    }
      

  4.   

    我这是个无串口的定时器。
    在MSDN中说如果SetTimer的窗口句柄是NULL,就会忽略nIDEvent。那我用SetTimer定义了几个时间不同的定时器该怎么办?nIDEvent忽略了,也就没办法switch(nIDEvent)了.