Здравствуйте Constructor, Вы писали:
C>Здравствуйте Nikto, Вы писали:
N>>Здравствуйте Constructor, Вы писали:
C>>>Здравствуйте!
C>>>Почему у диалогового класса нет деструтора?
N>>В какой момент мне освобождать динамически выделенную память (например, при нажатии на кнопку выделяю кусок)?
N>>Например в OnClose()
C>Не совсем верный ответ. OnClose() вызывается только если закрывать диалог кнопкой закрытия окна в правом верхнем углу. А при закрытии кнопакми ОК и Отмена — не вызывается. Наверное, лучше OnDestroy().
Все выше описанное не то чтоб неверно, но нежелательно.
Например при следующем использовании:
CMyDialog dlg;
while(dlg.DoModal()!=IDOK);
конструктор будет вызван только один раз, а OnDestroy() может вызываться много раз. Результат думаю очевиден.
И вообще:
если выделяешь память в конструкторое — очищай в деструкторе
если выделяешь память в OnInitDialog() — очищай в OnDestroy().