【问题标题】:Assynchronous dialog box on Windows with C++使用 C++ 的 Windows 上的异步对话框
【发布时间】:2013-02-20 11:03:50
【问题描述】:

现在我正在开发一个实时软件,但我让自己实现了表单 - 使用 C++Builder 2007 - 用于确认消息(你知道,那些带有 OK 和 Cancel 的对话框,或者只有在出现错误时才 OK ),我读到 Windows MFC 上有一个 DialogBox 类。问题是调用会中断线程,直到在对话框上完成某些输入,我无法承受,因为应用程序上可能正在发生其他事情。

我已阅读有关无模式对话框的信息,但我不确定它是否是我需要的或如何实现。 Windows MFC 上是否有默认的异步对话框,如果有,我该如何调用它?

【问题讨论】:

  • 你应该使用线程。 从不在 main-ui 线程上执行繁重的(cpu 密集型)工作。它是 windows 202(不完全是 101,但仍然很基本)
  • 我应该使用线程来确认消息吗?所以我会在这个新线程而不是主线程上调用对话框,并在它关闭后返回值?
  • 你想像CWnd::MessageBox那样显示消息框
  • dccarmo:在 Windows 中,通常以相反的方式处理它:您的“工作”应该在线程上运行,Windows UI 和对话框应该在主线程。虽然任何一种方式都有效。如果您从线程运行 UI,则只需确保从辅助线程执行所有窗口创建、消息泵送等操作。

标签: c++ mfc dialog c++builder


【解决方案1】:

您不需要线程,您需要无模式对话框...它们最终成为同一调度线程上的窗口。

【讨论】:

  • 基本上不是在堆栈上创建对象并使用DoModal(),而是您new 对象然后自己执行Create
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 2012-04-17
相关资源
最近更新 更多