Диалоговое окно MFC продолжить после нажатия ОК

У меня есть диалоговое окно с сообщением, которое всплывает, когда 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

Решение

использование DoModal вместо Create а также ShowWindow чтобы показать ваш диалог ошибок. например

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

Как видно из кода, вам нужно будет передать текст, а затем установить метку сообщения внутри. CDlgError::OnInitDialog потому что элемент управления не будет инициализирован перед переходом в модальное состояние.

3

Другие решения

Вы создаете диалог, используя Create который показывает modalless диалог (вы можете нажать на другие части приложения, даже если диалог открыт).
Ваше требование для модальный диалоговое окно, в котором вы не можете нажать на любую часть приложения, пока это диалоговое окно не будет закрыто.
Для этого используйте DoModal функция вместо создания.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector