基本上就是标题所说的。当用户按下特定按钮时,我想每 1 秒更新一次按钮包含的文本。我注意到,当程序没有焦点时,它可以正常工作并且文本会正确刷新,但是当我将鼠标悬停在程序上或尝试单击它的菜单时,Windows 会通知我程序没有响应并询问我是否我希望它终止。当循环结束时,程序返回其正常状态。此外,当它是Sleep()时我可能已经完成的任何操作(比如移动它或关闭它)都是在循环之后执行的。这是一段代码:
case ID_BUTTON_START:
// Code executed when pressing Start Button.
char startButtonText[30]; // Storing next loop text
for (int i=5; i>0; i--)
{
sprintf(startButtonText, "Starting in ... %d", i);
SendMessage(hwndButtonStart, WM_SETTEXT, 0, (LPARAM)(startButtonText));
Sleep(1000);
}
这是正常的吗?如果不是,这是什么原因造成的?