【问题标题】:Progress bar control......between two dialog进度条控件......两个对话框之间
【发布时间】:2013-12-10 06:26:11
【问题描述】:

我的应用程序基于串行通信。 它有主对话框窗口,从中我们可以选择三个选项泵、crind 和 kiosk。 当我选择任何一个说泵时,就会调用带有进度条的小对话框(CommonResponse),并从命令文件中获取泵的时间。这个小窗口位于作为工作线程创建的单独线程上。 现在我希望这个带有进度条的小窗口在主线程上,但在后台串行通信应该正在进行......如何做和这样做的步骤?

这样做的一个选项是代替进度条,串行通信在单独的线程上。但是现在这是非常耗时的过程,因为所有东西都准备好了,只有我们想要更改的这部分...... 提前谢谢你!!!

【问题讨论】:

  • 我知道你想要一个工作线程中的窗口吗?馊主意。除了在非常非常罕见的情况下,这似乎不是你的情况,所有 GUI 交互都应该在主线程中。然后任何工作线程通过消息与其通信,主线程更新 GUI,就像 xMRi 在回答中所说的那样。查看this link 了解如何操作,解释为什么工作线程不能接触 GUI,等等。

标签: multithreading mfc modal-dialog


【解决方案1】:

只需将主线程窗口的句柄传递给后台线程。

使用 PostMessaage 发送一条私人消息,通知主线程有关进度。主线程可以对其进行解码,并将嵌入的进度条设置为您想要和需要的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    相关资源
    最近更新 更多