【问题标题】:How to make two active dialogs in the same time in MFC?如何在 MFC 中同时创建两个活动对话框?
【发布时间】:2013-08-26 14:42:42
【问题描述】:

我试图在 MFC 中同时运行两个窗口 - 当我运行我的应用程序时。 在 BOOL CrTestTaskApp::InitInstance() - 我的应用程序的初始化函数中,我写了这个:

CrStartDlg sDlg;
sDlg.DoModal();
CrMainDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();

if (nResponse == IDOK)
{

}
else if (nResponse == IDCANCEL)
{

}

但只有在我先关闭后才会出现第二个对话框。而且,如果我在 BtnClick() 第一个对话框上创建 Modal() 第二个对话框 - 我无法在它们之间切换.. 只有一个活动......

请帮帮我。

【问题讨论】:

  • 您不能同时打开 2 个模态对话框。如果要打开 1 个以上的对话框,则必须使用无模式对话框。

标签: c++ mfc dialog


【解决方案1】:

您需要无模式对话框,而不是由DoModal 方法创建的模式。

无模式对话框使用CDialog::Create 创建并充当常规窗口,响应通过共享消息队列/泵发送的消息。

【讨论】:

  • 谢谢,它帮助了我。您能否告诉我是否可以使现有的对话框无模型?
  • 你可能需要一些小的更新,特别是。围绕EndDialog 调用,这些调用不适用于无模式对话框。大多数消息处理程序应该没问题。
猜你喜欢
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多