在基于对话框的工程中,有一个EDIT box控件,关联了一个变量m_show。另有一个button控件,现在想在按下button后,首先显示一段字符“abc”,然后延迟3秒钟(不要求很精确),显示“def”。
我已经试过了使用Sleep(3000),还有使用空循环:for(int i=0;i<100000000;i++):,问题就是:现在延迟实现了,但是不再显示“abc”,而是等待3秒后,直接显示“def”。我很困惑,哪位好兄弟姐妹指点一下我吧?

解决方案 »

  1.   

    用计时器吧(把代码写到OnTimer()中)!这样是不会显示的.
      

  2.   

    先messagebox再sleep(3000)不对吗?
      

  3.   

    你在等待的时候消息循环被阻塞了,应该用SetTimer(..3000).......
    然后再OnTimer()的时候edit赋值def
      

  4.   

    用下面这个也行吧
    ::SetTimer(句柄, 0,3000, 调用的方法名);    
      

  5.   

    关联变量为CEdit类型的 m_show在button 相应函数里CString str1,str2;
    str1.Format("abc");
    str2.Format("def");
    m_show.SetWindowText(str1);
    str+=str2;
    Sleep(3000);
    m_show.SetWindowText(str1);
      

  6.   

    str+=str2;str应该为str1 试了下不行 用4楼的方法吧