ダイアログベースのアプリケーションがあります。デフォルトでは、VisualStudioはアプリとDlgクラスを作成しました。ダイアログにボタンや編集ボックスなどを追加しました。ユーザーがダイアログの[スタート]ボタンをクリックすると、5分間の自動テストが実行され、編集ボックスにテキストの更新と進行状況が表示されます。これがうまく機能しているので、自動テストの実行中に、ユーザーがダイアログの他のボタンやチェックボックスをクリックできるようにしたいと思います。これを行うために、CMyThreadというクラスウィザードを使用してUIスレッドクラスを作成しました。CMyThreadで、STARTボタンを押したときに実行されたコードをCMyThreadのRun()関数に移動しました。STARTボタンがクリックされたときにCMyThreadRun()関数を呼び出す予定です。5分間の自動テストの実行中に、ダイアログの編集ボックスで進行状況と更新を取得したいのですが。
1 に答える
1
これは、MyThreadクラスに、ダイアログのメッセージループによって処理されるメッセージを送信させることによって行われます。
SOについては、他にも同様の質問があり、役立つ回答があります。 別のスレッドから終了したタスクについてCDialogオブジェクトに通知するにはどうすればよいですか?
そして、ここにサンプルコードの記事がありますhttp://forums.codeguru.com/showthread.php?312454-MFC-Thread-How-to-access-UI-elements-from-a-thread-in-MFC
于 2012-12-13T23:25:18.987 に答える