опубликован 19-05-2001 16:38 MSK
Попробую объяснить суть проблемы:Есть главное окно типа CWnd, у него есть член, порожденный тоже от Cwnd;
class CMainWindow : public CWnd
{
public:
CMainWindow();
CMyWnd *nwindow;
void CreateNWindow(void);
void DeleteNWindow();
};
void CMainWindow::CMainWindow()
{
nwindow=NULL;
}
void CMainWindow::CreateNWindow(void)
{
if (nwindow==NULL)
{
nwindow = new CMyWnd();
nwindow->Create(.....
}
}
void CMainWindow::DeleteNWindow()
{
if (nwindow!=NULL)
{
delete nwindow;
nwindow=NULL;
}
}
В конструкторе главного окна мы присваиваем указателю nwindow значени NULL. При необходимости создать это окно мы вызываем функцию-член CreateNWindow(), для того, чтобы удалить DeleteWindow(). Все как бы просто. Но как сделать так, чтобы nwindow мог сам себя удалить и значение указателя на себя сделать NULL. Можно вызвать функцию-член предка, но откуда ее вызывать? Из деструктора? Не получится? Я знаю, что этот вопрос банален и может показаться очень глупым, но все-таки я прошу всезнающий All объяснить мне про то, как обойти эти грабли.
Огромное спасибо !