Затем, каждые 100-300 мс по таймеру вызывается Invalidate();
В debug получаем: > First-chance exception in my.exe (GDI32.DLL): 0xC0000005: Access
Violation. > First-chance exception in my.exe (GDI32.DLL): 0xC0000005: Access
Violation.
Таких строчек может быть и много, а может и не быть совсем, как повезет.
От этого можно как-то избавиться?
Кстати, несмотря на это, все работает на ура.
MSDN гласит, что CPictureHolder предназначен для вывода картинок в
контролах, но как же тогда правильно вывести битмап на экран с заданными
координатами и размером в обычном SDI-документе?
Здравствуйте Андрей, Вы писали:
А>Можешь на это дело забить — эти сообщения говорят о том, что возникшее исключение было успешно обработано. Это вполне нормальная ситуация.
Понятно.
Видимо это такой же баг, как и тот, что описан в одном из артиклей
KB, насчет функции ChoosePixelFormat.
Пришлось сделать пустой catch(...), вроде ничего не пишется.
Спасибо за помощь.
// anton
PS. Самое нехорошее в этом было то, что был очень затруднен дебаг
(трудно было отслеживать TRACEs и сильные тормоза)
Здравствуйте anton, Вы писали:
A>Делаем примерно так: A> A>CMyView::OnDraw(CDC* pDC) A>{ A> CPictureHolder pic; A> pic.CreateFromBitmap(IDB_BITMAP1); A> pic.Render(pDC, CRect(20, 20, 100, 100), 0); A>} A> A>Затем, каждые 100-300 мс по таймеру вызывается Invalidate(); A>В debug получаем: A> > First-chance exception in my.exe (GDI32.DLL): 0xC0000005: Access A>Violation. A> > First-chance exception in my.exe (GDI32.DLL): 0xC0000005: Access A>Violation. A> A>Таких строчек может быть и много, а может и не быть совсем, как повезет. A>От этого можно как-то избавиться? A>Кстати, несмотря на это, все работает на ура. A>MSDN гласит, что CPictureHolder предназначен для вывода картинок в A>контролах, но как же тогда правильно вывести битмап на экран с заданными A>координатами и размером в обычном SDI-документе?
A>PS 98se, vc6sp5
Попробуй переменную CPictureHolder pic вынести в класс, а например строку
...
pic.CreateFromBitmap(IDB_BITMAP1);
...
например в конструктор, не гоже это как-то 100-300 тратится на создание объекта и его убийство, может заодно и твою проблему решит.