CGraphWin::CGraphWin(CWnd *pWnd_=NULL)
{
// Создание окна с заголовком
pWnd=pWnd_;
Create(0, "График", WS_OVERLAPPEDWINDOW, rectDefault, pWnd,"GRAPHMENU");
nds=0;
ds=NULL;
}
CGraphWin::~CGraphWin()
{
for (int i=0;i<nds;i++)
{
DeleteObject (ds.hPen);
delete [] ds.podpis;
}
free(ds);
}
Сообщение при тестировании класса
Warning: calling DestroyWindow in CWnd::~CWnd; OnDestroy or PostNcDestroy in derived class will not be called.
Detected memory leaks!
Dumping objects ->
{39} normal block at 0x00C22A64, 2424 bytes long.
Data: < F F P.F bF> 00 F4 D1 46 00 00 01 46 00 50 2E 46 00 F4 62 46
{38} normal block at 0x00C220C0, 2424 bytes long.
Data: < IF rF F f F> 00 C4 49 46 00 94 72 46 00 90 98 46 00 66 D7 46
{37} normal block at 0x00C210AC, 4076 bytes long.
Data: < ~F , F zF H E> 00 98 7E 46 00 2C B2 46 00 10 7A 46 00 48 B2 45
Object dump complete.
Кто-то сталкивался с чем-то подобным? Как это можно исправить.
Цитата:
Originally posted by michael_is_98
Как это можно исправить.
Как это можно исправить.
Думаю, виртуальный деструктор тебе поможет.
Цитата:
Originally posted by Green
Думаю, виртуальный деструктор тебе поможет.
Думаю, виртуальный деструктор тебе поможет.
Не совсем понял, что нужно сделать
У меня простой класс, создается на основе CFrameWnd.
Вот код конструктора и деструктора
Код:
Вот фрагмент заголовочного файла
Код:
class CGraphWin: public CFrameWnd
{
public:
CGraphWin(CWnd *);
~CGraphWin();
...
{
public:
CGraphWin(CWnd *);
~CGraphWin();
...
По крайней мере обработчик OnDestroy не вызывается.
Мне нужно, чтобы после вызова деструктора (или непосредственно до его вызова) само окно уничтожалось,
но при закрытии окна (нажатие крестик или выбор пункта меню) оно только скрывалось
(т.е. обработчик OnClose и пункта меню вызывал this->ShowWindow(SW_HIDE);)
Для того, чтобы можно было бы вновь задать параметры вывода рисунка и снова показать окно.
Вот такая идея, из-за этой нестандартности видимо что-то не так срабатывает.