c++ - 如何通过 UI 线程类 Run() 函数在对话框编辑框中显示字符串

标签 c++ visual-studio ui-thread

我有一个基于对话框的应用程序。默认情况下,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/

相关文章:

c++ - 如果我们使用 SFINAE 匹配类型,则完全失败

c++ - 在不调用 initializer_list 构造函数的情况下将不可复制、不可移动的类型构造为函数参数

c++ - 你喜欢在哪里拆分长线?

ios - IOS 中的 AdjustPan 模拟和 UITextField 的获取/丢失焦点

vb.net - Visual Basic.NET : how to create a thread to update the UI

JavaFX 避免在使用混合 UI 而不是 UI 元素的长时间运行操作期间锁定 UI

c++ - 通过 FTP 上传文件的进度条 [C++]

c++ - 我的代码只会运行 main 函数,其他函数不会在 C++ 中编译

android - admob:如何在 UI 线程之外加载 AdRequest?

visual-studio - Visual Studio : any one click switch between tabs and spaces indentation?