程序代码如下:
OnBnClickedNext()
{
(CButton*)GetDlgItem(IDOK_NEXT)->EnableWindow(FALSE); Sleep(3000);
SetDlgItemText(IDOK_NEXT, _T("SleepOver"));
}我希望的效果是:当点击Next按钮后,Next按钮被灰化,3s后按钮上的文字由Next变为SleepOver,但是不知道为什么 现在的现实效果确是:点击Next按钮后,按钮没有立刻灰化,3s后按钮灰化并且按钮上的文字变为SleepOver?
OnBnClickedNext()
{
(CButton*)GetDlgItem(IDOK_NEXT)->EnableWindow(FALSE); Sleep(3000);
SetDlgItemText(IDOK_NEXT, _T("SleepOver"));
}我希望的效果是:当点击Next按钮后,Next按钮被灰化,3s后按钮上的文字由Next变为SleepOver,但是不知道为什么 现在的现实效果确是:点击Next按钮后,按钮没有立刻灰化,3s后按钮灰化并且按钮上的文字变为SleepOver?
{
(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 消息 来修改按钮文本。