| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > GDIPlus уничтожение объектов |
| Автор: qwantor 7.2.2009, 11:32 | ||||
| Доброго времени суток! У меня возникли траблы с GDI+: Предисловие: У класса контрола есть private поле Graphics* gr, есть public метод virtual Graphics* GetCurrentGraphics(), который пока тупо возвращает gr. gr создаётся в OnPaint(). Есть наследник этого контрола, с помощью которого надо будет кое-что рисовать... Проблема: вот код GetCurrentGraphics исходного контрола:
вот код GetCurrentGraphics производного контрола: [code=cpp] Graphics* DicomImageViewer::GetCurrentGraphics() { return GDIPlusPictureBox::GetCurrentGraphics(); } [/cod вот код OnPaint-a производного контрола:
В полученном gr поле NativeGraphics=NULL. Адрес в памяти на gr совпадает с тем, который создаётся, а вот NativeGraphics походу дела успевает уничтожится. И т.о. при использовании полученного Graphics вылетают исключения, что плохо. Честно говоря это меня очень расстраивает, т.к. всё, что мне нужно сделать было продуманно с использованием передачи укзателя на Graphics. Подскажите, пожалуйста, как мне быть, как заставить NativeGraphics не уничтожаться или как передавать Graphics*??? |