在一段代码中,想在编辑框中显示几个字,它好像不执行这个语句:
m_showstate.SetWindowText("开始进行转化................");
如果我在这个语句后面加上:
AfxMessageBox("111111111!");
这上面的语句起作用,请问为什么?
我想用一个函数使程序等几秒,请问有没有这个函数?

解决方案 »

  1.   

    要让程序睡一会的话用 Sleep() ,API函数,它的参数就是你要休息的毫秒数。
      

  2.   

    1)afxmessagebox显示一个提示矿,然后你的程序得到系统资源,否则的话,你的程序还没有显示完成,可能就被循环占用了
    2)可以用event等待超时
    3)可以用sleep
    这两个函数最好不要再前台应用
    4)可以一边转化一边刷新你的界面
    5)可以把转化过程放在后台线程中运行
    6)可以用表面线程编程刷新你的界面
      

  3.   

    Sleep/SleepEx,不过我想这可能不能解决你的问题,你试试SetWindowText后调用UpdateWindow重绘窗口
      

  4.   

    你在给控件赋值之后,用UpdateData(FALSE)来更新数据,就能把它显示出来了。
    UpdateData()就是用来在控件变量和控件之间数据更新的。默认的参数是TRUE,表示从控件到变量,FALSE则表示变量到控件。
      

  5.   

    Sleep(milliseconds)等待:不行,可能这种方式使整个程序停止运行了,我用循环试一下!
      

  6.   

    用循环也不行,只能用AfxMessageBox("111111111!");才能正确显示!
      

  7.   

    用UpdateData(FALSE)
    用UpdateData(TRUE)
    也不行!
      

  8.   

    waitforsingleobject(hwnd,time),设置一个不会释放的资源,然后时间设为你要等的。就可以了
      

  9.   

    m_showstate.Invalidate();   
    m_showstate.UpdateWindow();你直接这样调用,肯定可以的,这个问题和Sleep, MessageBox都没有关系,关键是SetWindowText后,return返回消息循环后,控件才会更新:
      

  10.   

    waitforsingleobject(hwnd,time),设置一个不会释放的资源,然后时间设为你要等的。就可以了!
    hwnd:怎么设定?