程序代码如下:
OnBnClickedNext()
{
    (CButton*)GetDlgItem(IDOK_NEXT)->EnableWindow(FALSE);    Sleep(3000);

    SetDlgItemText(IDOK_NEXT, _T("SleepOver"));
}我希望的效果是:当点击Next按钮后,Next按钮被灰化,3s后按钮上的文字由Next变为SleepOver,但是不知道为什么 现在的现实效果确是:点击Next按钮后,按钮没有立刻灰化,3s后按钮灰化并且按钮上的文字变为SleepOver?

解决方案 »

  1.   

    OnBnClickedNext()
    {
      (CButton*)GetDlgItem(IDOK_NEXT)->EnableWindow(FALSE); // Sleep(3000);//中断了线程执行,,你的按钮得不到重绘消息。SetTimer(50,3000,NULL);
      //SetDlgItemText(IDOK_NEXT, _T("SleepOver"));
    }
    ontimer()
    {
    if(50==ID)
    {
    SetDlgItemText(IDOK_NEXT, _T("SleepOver"));
    KILLTIMER(50);
    }}楼主应该使用 WM_TIME 消息 来修改按钮文本。
      

  2.   

    用SetTimer,现在可以了,多谢两位啦