2017-06-13 2 views
0

VC++のボタンを押すと、USBからデータの読み込みが開始され、完了するまでに数分かかります。この操作中に、同じダイアログ内の編集ボックスに進行状況を表示したい場合はm_editCtrl.SetWindowTextW(output1);を使用しますが、転送中は編集ボックスの内容は変更されません。どうすれば変更できますか?VC++ mfcのイベントハンドラを処理中にEditBoxの内容を変更する

ありがとう

+2

I/Oには時間がかかるので、別のスレッドで実行する必要があります。 – rrirower

+2

UIスレッドで長期実行タスクを実行しないでください。作業をワーカースレッドにオフロードすることも、非同期I/Oを使用することもできます。 – IInspectable

+0

別のスレッドを作成するには? @Rrirower –

答えて

0

メインスレッドがループのようにビジー状態の場合、GUIは更新されません。重い持ち上げを行うスレッドを作成する必要があります。スレッドは、更新メッセージをGUIにポストする必要があります。

Hereは、開始する例であり、仕事をしますが、改善することができます。この例では、スレッドはGUI APIを直接呼び出していますが、HWNDを使用して親ウィンドウにメッセージをポストし、それ自身を更新するとさらに優れています。

関連する問題