我是这样做的         {
int timer_num = 5; static int t_time=timeGetTime(); //--5秒倒計時提示
if((timeGetTime()-t_time)%1000==0)
{
timer_num--;
} if (timeGetTime() - t_time >5000)
{
                               关闭程序
}
                     }             但是这样做实现不了,请教高手,谢谢!

解决方案 »

  1.   

    while((--timer_num) >= 0) Sleep(1000);
    关闭程序
      

  2.   


    CTimeSpan tInterval;
    CTime tCurrentTime,timeStart;
    tCurrentTime=CTime::GetCurrentTime();
    tInterval=tCurrentTime-timeStart;timeStart需要在计时开始时就记录下来,上面的几行代码放在OnTimer()事件中来计算。
      

  3.   

      我现在的问题是那个倒计时不能变化,我是想   5
      4
      3
      2
      1
      
      现在就是那个timer_num没有变化 
      

  4.   

    void CYourDlg::OnTimer(UINT nIDEvent)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值 CTimeSpan tInterval;
    CTime tCurrentTime;
    tCurrentTime=CTime::GetCurrentTime();
    tInterval=tCurrentTime-timeStart;
    if(tInterval.GetHours()==hour && tInterval.GetMinutes()==minute && tInterval.GetSeconds()==second)
    {
                //做楼主想做的。
            }
    }
      

  5.   

    {
                int timer_num = 5;            static int t_time=timeGetTime();            //--5秒倒計時提示
               while(tiemr_num>0)
    {
                if((timeGetTime()-t_time)%1000==0)
                {
                    timer_num--;
                }
    }
                if (timeGetTime() - t_time >5000)
                {
                                   关闭程序
                }
                         }
      

  6.   

    没有用到MFC,那WM_TIMER事件总能响应吧,这段功能可以在TIMER中实现
      

  7.   

    if((timeGetTime()-t_time)%1000==0) 这一句有问题。
    (timeGetTime()-t_time))%1000 不会等于 0,会是一个很小很小的小数,把这个值直接显示出来就可以看见了。改一个思路,用其它高手的方法,SetTimer 和 OnTimer