Модальное диалоговое окно MFC не позволяет продолжить другое модальное диалоговое окно после закрытия диалогового окна - PullRequest
0 голосов
/ 13 ноября 2018

Создан простой проект MFC, затем создайте три диалоговых окна и добавьте класс CDialog.

Классы TestA, TestB, TestC.

В главном диалоговом окне,

void CMFCApplication3Dlg::OnBnClickedButton1() {
  TestA *a = new TestA(CWnd::FromHandle(GetSafeHwnd()));
  a->Create(TestA::IDD, CWnd::FromHandle(GetSafeHwnd()));
  a->ShowWindow(SW_SHOW);
}

void CMFCApplication3Dlg::OnBnClickedButton2() {
  TestB b;
  b.DoModal();
  AfxMessageBox(L"B closed");
}

Класс TestA имеет,

void TestA::OnBnClickedButton1() {
  TestC c;
  c.DoModal();
  AfxMessageBox(L"C closed");
}

Проблема возникает, когда

  1. Открытый тест A
  2. Открытый тест B
  3. Открытый тестC

Теперь, когда я закрываю TestB, AfxMessageBox (L "B закрыто"); не запускается, пока я не закрою диалог TestC.

Почему это происходит?

...