按下确定后继续MFC对话框

时间:2012-12-17 14:40:18

标签: c++ mfc dialog

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

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

//more code

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

2 个答案:

答案 0 :(得分:3)

使用DoModal代替CreateShowWindow来显示您的错误对话框。 e.g。

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

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

答案 1 :(得分:0)

您正在使用Create创建一个对话框,其中显示了无模式对话框(您可以单击应用程序的其他部分,甚至打开对话框)。 您需要的是模态对话框,在此对话框关闭之前,您无法单击应用程序的任何部分。 为此,请使用DoModal函数而不是create。