У меня есть диалоговое окно с сообщением, которое всплывает, когда 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
всплывающий диалог. Как я могу это сделать?
использование DoModal
вместо Create
а также ShowWindow
чтобы показать ваш диалог ошибок. например
CDlgError dlgError = new CDlgError(this);
dlgError.m_strMessage = "Error message!";
dlgError.DoModal();
Как видно из кода, вам нужно будет передать текст, а затем установить метку сообщения внутри. CDlgError::OnInitDialog
потому что элемент управления не будет инициализирован перед переходом в модальное состояние.
Вы создаете диалог, используя Create
который показывает modalless диалог (вы можете нажать на другие части приложения, даже если диалог открыт).
Ваше требование для модальный диалоговое окно, в котором вы не можете нажать на любую часть приложения, пока это диалоговое окно не будет закрыто.
Для этого используйте DoModal
функция вместо создания.