ダイアログが 1 つある MFC ダイアログ ベースのアプリがあります。ボタンをクリックすると、別の作業スレッドが開始されます。残念ながら、作業スレッドの機能が実行されている間、ダイアログのコントロールにアクセスできません。
void CrMainDlg::OnBnClickedButton1()
{
//...
CWinThread* fonThread = AfxBeginThread(WorkerThreadProc, iP, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
//...
}
UINT CrMainDlg::WorkerThreadProc(LPVOID Param)
{
//...
while(/*some bool*/)
{
//makesomething
Sleep(1000);
}
//...
}
Sleep(1000) と書いた場合にのみ、メイン ダイアログの ScrollBar や別のボタンなどにアクセスできます。そうしないと、whileが終了した後にのみコントロールにアクセスできます...
私は何を間違っていますか?