Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сообщение при тестировании класса

284
13 октября 2005 года
michael_is_98
587 / / 25.02.2005
Совершенно случайно при тестировании класса заметил сообщение

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.

Кто-то сталкивался с чем-то подобным? Как это можно исправить.
3
13 октября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by michael_is_98
Как это можно исправить.


Думаю, виртуальный деструктор тебе поможет.

284
14 октября 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Green
Думаю, виртуальный деструктор тебе поможет.


Не совсем понял, что нужно сделать
У меня простой класс, создается на основе CFrameWnd.

Вот код конструктора и деструктора

Код:
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);
}

Вот фрагмент заголовочного файла
 
Код:
class CGraphWin: public CFrameWnd
{
public:
    CGraphWin(CWnd *);
    ~CGraphWin();
...
284
14 октября 2005 года
michael_is_98
587 / / 25.02.2005
Похоже деструктор не вызывает DestroyWindow.
По крайней мере обработчик OnDestroy не вызывается.

Мне нужно, чтобы после вызова деструктора (или непосредственно до его вызова) само окно уничтожалось,
но при закрытии окна (нажатие крестик или выбор пункта меню) оно только скрывалось
(т.е. обработчик OnClose и пункта меню вызывал this->ShowWindow(SW_HIDE);)

Для того, чтобы можно было бы вновь задать параметры вывода рисунка и снова показать окно.

Вот такая идея, из-за этой нестандартности видимо что-то не так срабатывает.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог