2017-06-13 128 views
0

當我在VC++中按下按鈕時,程序開始從USB讀取數據,這需要幾分鐘才能完成。在此操作過程中,我想使用m_editCtrl.SetWindowTextW(output1);在同一個對話框的編輯框中顯示進度的狀態。但在傳送過程中,編輯框的內容不會更改。我們如何改變它?在VC++中處理事件處理程序時更改EditBox的內容mfc

謝謝

+2

由於您的I/O需要一些時間,您需要在單獨的線程上執行它。 – rrirower

+2

不要在您的UI線程上執行長時間運行的任務。您可以將工作卸載到工作線程,也可以使用異步I/O。 – IInspectable

+0

如何製作另一個線程? @rrirower –

回答

0

如果主線程像循環中一樣忙,它將不會更新GUI。你應該創建一個線程來完成繁重的任務,線程應該將更新消息發佈到GUI。

Here是一個入門示例,可以完成這項工作,但可以改進。在這個例子中,線程直接調用GUI API,但如果使用HWND將消息發佈到父窗口,它將更好,並且它會自行更新。