0
VC++のボタンを押すと、USBからデータの読み込みが開始され、完了するまでに数分かかります。この操作中に、同じダイアログ内の編集ボックスに進行状況を表示したい場合はm_editCtrl.SetWindowTextW(output1);
を使用しますが、転送中は編集ボックスの内容は変更されません。どうすれば変更できますか?VC++ mfcのイベントハンドラを処理中にEditBoxの内容を変更する
ありがとう
VC++のボタンを押すと、USBからデータの読み込みが開始され、完了するまでに数分かかります。この操作中に、同じダイアログ内の編集ボックスに進行状況を表示したい場合はm_editCtrl.SetWindowTextW(output1);
を使用しますが、転送中は編集ボックスの内容は変更されません。どうすれば変更できますか?VC++ mfcのイベントハンドラを処理中にEditBoxの内容を変更する
ありがとう
メインスレッドがループのようにビジー状態の場合、GUIは更新されません。重い持ち上げを行うスレッドを作成する必要があります。スレッドは、更新メッセージをGUIにポストする必要があります。
Hereは、開始する例であり、仕事をしますが、改善することができます。この例では、スレッドはGUI APIを直接呼び出していますが、HWNDを使用して親ウィンドウにメッセージをポストし、それ自身を更新するとさらに優れています。
I/Oには時間がかかるので、別のスレッドで実行する必要があります。 – rrirower
UIスレッドで長期実行タスクを実行しないでください。作業をワーカースレッドにオフロードすることも、非同期I/Oを使用することもできます。 – IInspectable
別のスレッドを作成するには? @Rrirower –