我的主对话框中的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
后才能执行其余代码。我怎么能这样做?
答案 0 :(得分:3)
使用DoModal
代替Create
和ShowWindow
来显示您的错误对话框。 e.g。
CDlgError dlgError = new CDlgError(this);
dlgError.m_strMessage = "Error message!";
dlgError.DoModal();
从代码中可以看出,您需要传入文本,然后在CDlgError::OnInitDialog
内设置您的消息标签,因为在进入模态之前控件不会被初始化。
答案 1 :(得分:0)
您正在使用Create
创建一个对话框,其中显示了无模式对话框(您可以单击应用程序的其他部分,甚至打开对话框)。
您需要的是模态对话框,在此对话框关闭之前,您无法单击应用程序的任何部分。
为此,请使用DoModal
函数而不是create。