2017-06-13 130 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将消息发布到父窗口,它将更好,并且它会自行更新。