我希望按键后经2s显示"时间到";可为何总也不显示?
void CTest_timerDlg::OnButton1Timer() 
{
SetTimer(1,2000,NULL);
while(!btime);
{
btime=false;      //前面定义了全局变量
m_edit1="时间到";
UpdateData(false);
KillTimer(1);
}
}void CTest_timerDlg::OnTimer(UINT nIDEvent) 
{
CDialog::OnTimer(nIDEvent);
btime=true;
}

解决方案 »

  1.   

    你的程序有问题,你跟踪过没有.OnButton1Timer() 没有退出过又怎么能响应WM_TIMER呢?void CTest_timerDlg::OnButton1Timer() 
    {
    SetTimer(1,2000,NULL);
    while(!btime);    //<--这是干嘛用的
    {
    btime=false;      //前面定义了全局变量
    m_edit1="时间到";
    UpdateData(false);
    KillTimer(1);
    }
    }
      

  2.   

    void CTest_timerDlg::OnButton1Timer() 
    {
    SetTimer(1,2000,NULL);
    }void CTest_timerDlg::OnTimer(UINT nIDEvent) 
    {
    CDialog::OnTimer(nIDEvent);
             m_edit1="时间到";
    UpdateData(false);
    KillTimer(1);}
      

  3.   

    你的while(!btime);
    是不会出来的。 因为你是单线程,
    ontimer() 不会有机会执行。
    仅是休息两秒用Sleep(2000)就可以了。