Я хочу использовать один и тот же класс CTestDialog
для модальногоВыделяют безрежимные против диалога модального
CTestDialog dlg;
dlg.DoModal();
и немодального Dialog
m_pDlg = new CTestDialog;
m_pDlg->Create(CTestDialog::IDD,this);
m_pDlg->ShowWindow(SW_SHOW);
Проблема у меня есть на PostNcDestroy (..) это сбои, если они сконструированы как модальные Диалог:
void CTestDialog::PostNcDestroy()
{
CDialog::PostNcDestroy();
delete this; // <= need for modeless, but Crash! if constructed as modal Dialog
}
Как я могу определить, в прямой форме путь, если класс был построен как немодальный или модальный диалог?
Да, я хочу избежать удаления, если диалог построен как модальный диалог (в стеке). Как правило, моделируемые объекты диалога создаются где-то на куче и уничтожаются в PostNcDestroy() –
Пробовали ли вы проверку [DS_MODALFRAME] (https://msdn.microsoft.com/en-us/library/windows/desktop/ff729172 (v = vs.85) .aspx) стиль? – rrirower
Вам нужно удалить это; так как в противном случае у вас будет утечка памяти – demonplus