Создан простой проект 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");
}
Проблема возникает, когда
- Открытый тест A
- Открытый тест B
- Открытый тестC
Теперь, когда я закрываю TestB, AfxMessageBox (L "B закрыто"); не запускается, пока я не закрою диалог TestC.
Почему это происходит?