用SetTimer()  API。 其有三种用法。

解决方案 »

  1.   

    调用
    UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );函数启动两个不同的定时器,指定这两个定时器的nIDEvent为不同的。
    在OnTimer( UINT nIDEvent )函数里用nIDEvent来区分这两个定时器。
      

  2.   

    安装定时器
    SetTimer(1, 1000, NULL);
    SetTimer(2, 3000, NULL);响应函数
    OnTimer(ID)
    {
      switch(ID)
      {
      case 1: .......
              .......
              break;
      case 2: .......
              .......
              break;
      default:.......
              ........
      }
    }明白吗?
      

  3.   

    一个OnTimer(UINT nIDEvent) 可以响应多个计时器:
    SetTimer(NULL,计时器1, 300, NULL);
    SetTimer(NULL,计时器2, 300, NULL);
      

  4.   

    1.
    CYourWnd::Start()
    {
    ...
     SetTimer( ID_EVENT1, 100, NULL );
     SetTimer( ID_EVENT2, 300, NULL );
    }
    CYourWnd::OnTimer( UINT nIDEvent )
    {
      if (nIDEvent == ID_EVENT1)
        DoFun1();
      if (nIDEvent == ID_EVENT2)
        DoFun2();
    }法2:
    class CYourWnd :public ...
    {
    ...
    static void DoFun1CB(HWND hWnd, UINT u1, UINT u2, DWORD dw) ;
    static void DoFun2CB(HWND hWnd, UINT u1, UINT u2, DWORD dw) ;
    }CYourWnd::Start()
    {
    ...
     SetTimer( ID_EVENT1, 100, DoFun1CB);
     SetTimer( ID_EVENT2, 300, DoFun2CB);
    }void CYourWnd::DoFun1CB(HWND hWnd, UINT u1, UINT u2, DWORD dw) 
    {
    ...
    }
    void CYourWnd::DoFun2CB(HWND hWnd, UINT u1, UINT u2, DWORD dw) 
    {
    ...
    }