0

我有一个基于对话框的应用程序。默认情况下,Visual Studio 创建了一个 App 和一个 Dlg 类。我在对话框中添加了按钮、编辑框等。当用户单击我的对话框上的 START 按钮时,它会运行 5 分钟的自动测试,并在编辑框中提供文本更新和进度。现在这很好用,我希望用户能够在自动测试运行时单击对话框中的其他按钮和复选框。为了做到这一点,我使用名为 CMyThread 的类向导创建了一个 UI 线程类。在 CMyThread 中,我将按下 START 按钮时执行的代码移至 CMyThread 中的 Run() 函数。我计划在单击 START 按钮时调用 CMyThread Run() 函数。在运行 5 分钟的自动化测试时,我仍然希望在对话框编辑框中获得进度和更新。

4

1 回答 1

1

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

SO上还有其他类似的问题,有有用的答案。 如何通知 CDialog 对象有关来自另一个线程的已完成任务?

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

于 2012-12-13T23:25:18.987 回答