首页 文章

如何转移线程以将消息发布到新窗口

提问于
浏览
0

我有一个线程,我通过一个窗口的HWND,它发布消息并更新进度条 . 然而,用户可以转到另一个窗口(模态),我也想显示该线程的进度 . 传递初始HWND显然是直截了当的,但是如何在线程运行时转移线程将消息发布到新窗口?这是一个c工作线程 . 我使用的是Windows 7,MFC,C .

2 回答

  • 0

    换句话说 . 让进度窗口从工作线程获取类的地址,并定期询问它的进度 . 例如,使用计时器 . 这样,您就可以拥有所需的进度窗口 .

  • 0

    有两种方法 . 一个是Daniel的方式,它从UI窗口轮询进度信息 . 您所需要的只是线程实现类(或等效的自由函数)中的线程安全的“int GetProgressPercent()const”成员 .

    另一种方法是在工作线程中使用PostMessage或PostThreadMessage作为进度,另一端处理调整条形的消息 .

    任何一个问题的主要问题是处理生命周期问题,防止在对象或HWND实际消失时调用它们 . 为此,PostThreadMessage方式可能是最安全的基线,因为主线程应该在那里并管理所有其他线程 - 并跟踪程序的整体状态,能够对实时窗口进行有意义的调度或什么也不做 . 但它也是最复杂的 .

相关问题