如何在UI Thread Classes Run()函数的对话框编辑框中显示字符串

时间:2012-12-13 22:55:04

标签: c++ visual-studio ui-thread

我有一个基于对话框的应用程序。默认情况下,Visual Studio创建了一个App和一个Dlg类。我在对话框中添加了按钮,编辑框等。当用户单击对话框上的“开始”按钮时,它将运行5分钟的自动测试,并在编辑框中提供文本更新和进度。现在这个工作正常,我希望用户能够在自动测试运行时单击对话框中的其他按钮和复选框。为了做到这一点,我使用名为CMyThread的类向导创建了一个UI线程类。在CMyThread中,我将按下START按钮时执行的代码移动到CMyThread中的Run()函数。我打算在单击START按钮时调用CMyThread Run()函数。在5分钟自动测试运行时,我仍然希望在对话框编辑框中获得进度和更新。如何将CMyThread Run()中的字符串发送到对话框中的编辑框并将其显示给用户?

1 个答案:

答案 0 :(得分:1)

通过让MyThread类发送要由对话框的消息循环处理的消息来完成。

在SO上还有其他类似的问题,并提供了有用的答案。 How to inform a CDialog Object about a finished task from another thread?

这是一篇包含示例代码http://forums.codeguru.com/showthread.php?312454-MFC-Thread-How-to-access-UI-elements-from-a-thread-in-MFC

的文章