Продолжаю разбираться в MFC...
1)
void CMy354App::OnButton32771()
{
CMainFrame* pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd);
pFrame->CreateNewChild(RUNTIME_CLASS(CNewChild), IDR_MY354TYPE, NULL, NULL);
}
2)
void CMy354App::OnButton32771()
{
CNewChild *pFrame=new CNewChild;
pFrame->LoadFrame(IDR_MY354TYPE);
}
Если во втором случае окну послать сообщение WM_CLOSE, объект класса будет удалён из системы и выделенная память будет автоматически высвобождена?
DECLARE_DYNCREATE - MSDN пишет:
The framework uses this ability to create new objects dynamically. For example, the new view created when you open a new document. Document, view, and frame classes should support dynamic creation because the framework needs to create them dynamically.
А я разве не динамически создаю объект оператором new без всяких DECLARE_DYNCREATE ?
C) Посмотрите как описан макрос DECLARE_DYNCREATE. Он создает статический метод CreateObject. А его имплементация - IMPLEMENT_DYNCREATE. При new CNewChild вы явно указываете тип.
Продвижение своими сайтами как стратегия роста и независимости