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