我定义了一个VIEW类定义了一个INT  m_time
定时器使用次数
 int temp;
if (m_str.GetLength()>=80)
{

m_time = SetTimer(1,1500,NULL);
}
else
{
temp =0;
}void CToolView::OnTimer(UINT nIDEvent) 
{
// TODO: Add your message handler code here and/or call default
temp--;
TCHAR STR[256];
itoa(temp,STR,10);
// AfxMessageBox(STR);
if (temp==0)
{
                 //这里使用对吗?怎么关不了呢还是一直在调用下面的FUN函数
KillTimer(m_time); 


}
else
Fun(m_str);




CHtmlView::OnTimer(nIDEvent);
}

解决方案 »

  1.   

    SetTimer(1,1500,NULL);
    KillTimer(1);
      

  2.   

    KillTimer(m_time); 这里有错,改成 
    KillTimer(1); 就可以了
      

  3.   

    KillTimer(m_time); 你确定执行了???你这个程序逻辑性  我感觉很差,当然我没看全部代码,可能说的也不准,但单从你发的代码来看,没逻辑啊。
        if (temp==0)
        {
                     //这里使用对吗?怎么关不了呢还是一直在调用下面的FUN函数
            KillTimer(m_time); 
            
            
        }
        else
            Fun(m_str);
    你这个是什么逻辑。
      

  4.   

    参数弄错了
    it is so cool
    感谢各位结贴
      

  5.   

    KillTimer(m_time); 这里有错,改成 
    KillTimer(1); 就可以了
    楼主这里没错。 
    Return ValueThe timer identifier of the new timer if the function is successful. An application passes this value to the KillTimer member function to kill the timer. Nonzero if successful; otherwise 0.
      

  6.   


    temp 是计数用的  就是限定定时器使用的次数,我希望它执行10次 temp 赋值为10 前面有个temp--;不知道有什么问题,全是自学没有什么开发经验
      

  7.   

    KillTimer(m_time); 这里有错,改成 
    KillTimer(1); 就可以了 我这里m_time的值的确是1,但是KillTimer(m_time); 定时器不停的执行
    KillTimer(1);就可以了,不知道为什么,唉
      

  8.   


    不是吧LZ的代码没有问题,只是定时器ONTIMER里是不是应该判断下nIDEvent,不知你共SET了几个TIMER
      

  9.   

    只有这一个定时器,如何判断nIDEvent 求教。。
      

  10.   

    除了m_time的类型应该是UINT外  我没看出什么毛病。
      

  11.   

    只是一个定时器就不用判断了,但是如果多个定时器响应ONTIMER的话,nIDEvent就是当前触发的定时器的ID,也就是SETTIMER时传入和返回的ID