【问题标题】:MFC dialog box continue after pressing ok按确定后 MFC 对话框继续
【发布时间】:2012-12-17 14:40:18
【问题描述】:

我有一个自定义对话框消息框,当我的主对话框中的 edit control 包含错误数据时,它会弹出。

CDlgError dlgError = new CDlgError(this);
dlgError.Create(CDlgError::IDD, this);
dlgError.m_staticMessage.SetWindowTextA("Error message!");
dlgError.ShowWindow(SW_SHOW);

//more code

我希望只有在我的CDlgError 弹出对话框中按下OK button 后才能执行其余代码。我该怎么做?

【问题讨论】:

  • 调用DoModal 而不是ShowWindow

标签: c++ mfc dialog


【解决方案1】:

使用DoModal 代替CreateShowWindow 来显示您的错误对话框。例如

CDlgError dlgError = new CDlgError(this);
dlgError.m_strMessage = "Error message!";
dlgError.DoModal();

从代码中可以看出,您需要传入文本,然后在 CDlgError::OnInitDialog 中设置消息标签,因为在进入模态之前不会初始化控件。

【讨论】:

    【解决方案2】:

    您正在使用Create 创建一个对话框,该对话框显示一个modalless 对话框(即使对话框已打开,您也可以单击应用程序的其他部分)。 您的要求是 modal 对话框,在该对话框关闭之前,您无法单击应用程序的任何部分。 为此,请使用 DoModal 函数而不是 create。

    【讨论】:

      猜你喜欢
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多