基本上,標題所說的內容。我想在用戶按下該特定按鈕時更新每1秒包含一個按鈕的文本。我注意到,當程序沒有焦點時,它的工作正常,文本正確刷新,但當我在程序上盤旋時,或者當我嘗試點擊它的菜單時,Windows通知我該程序沒有響應,並詢問我是否我想要它終止。當循環結束時程序返回到正常狀態。還有我可能做的任何動作(如移動它或關閉它),而它是休眠() -ing在循環後執行。以下是一段代碼:Win32中的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);
}
這是正常的嗎?如果不是這是什麼原因造成的?
SendMessage後睡眠?你有沒有打算使用PostMessage? – Chubsdad
'睡眠()'是幾乎沒有問題的解決方案 –