Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GDIPlus уничтожение объектов 
:(
    Опции темы
qwantor
Дата 7.2.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.4.2007

Репутация: нет
Всего: нет



Доброго времени суток!

У меня возникли траблы с GDI+:
Предисловие:
У класса контрола есть private поле Graphics* gr, есть public метод virtual Graphics* GetCurrentGraphics(), который пока тупо возвращает gr.
gr создаётся в OnPaint(). 
Есть наследник этого контрола, с помощью которого надо будет кое-что рисовать...
Проблема:
вот код GetCurrentGraphics исходного контрола:
Код

Graphics*  GDIPlusPictureBox::GetCurrentGraphics()
{
    //ToDo возвращать Graphics* на текущий Image
    return this->gr;
    
}

вот код GetCurrentGraphics производного контрола:
[code=cpp]
Graphics* DicomImageViewer::GetCurrentGraphics()
{
    
    return GDIPlusPictureBox::GetCurrentGraphics();
}
[/cod
вот код OnPaint-a производного контрола:
Код

GDIPlusPictureBox::OnPaint();
Graphics *gr=GetCurrentGraphics();
/*
Pen p(Color(255, 255, 0, 0) ,1);
gr->DrawLine(&p,10,10,100,100);
 */

В полученном gr поле NativeGraphics=NULL. Адрес в памяти на gr совпадает с тем, который создаётся, а вот NativeGraphics походу дела успевает уничтожится.
И т.о. при использовании полученного Graphics вылетают исключения, что плохо. Честно говоря это меня очень расстраивает, т.к. всё, что  мне нужно сделать было продуманно с использованием передачи укзателя на Graphics. Подскажите, пожалуйста, как мне быть, как заставить NativeGraphics не уничтожаться или как передавать Graphics*??? smile

 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.