我有一个基于对话框的应用程序。默认情况下,Visual Studio 创建了一个 App 和一个 Dlg 类。我在对话框中添加了按钮、编辑框等。当用户单击我的对话框上的开始按钮时,它会运行 5 分钟的自动测试并在编辑框中提供文本更新和进度。现在效果很好,我希望用户能够在自动测试运行时单击对话框中的其他按钮和复选框。为此,我使用名为 CMyThread 的类向导创建了一个 UI 线程类。在 CMyThread 中,我将按下 START 按钮时执行的代码移到了 CMyThread 中的 Run() 函数中。我计划在单击开始按钮时调用 CMyThread Run() 函数。我仍然想在 5 分钟的自动化测试运行时在对话框编辑框中获取进度和更新。如何将字符串从 CMyThread Run() 发送到对话框中的编辑框并显示给用户?
最佳答案
这是通过让 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
关于c++ - 如何通过 UI 线程类 Run() 函数在对话框编辑框中显示字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869971/