![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Не знаю в том ли подфоруме я спрашиваю...
В приложении на C++ (MFC) используется GDI+ для масштабирования и отрисовки фоновых рисунков. Кроме всяких рисуночков и изображений шапок форм есть рисунок основного фона. Он на самом деле меньше всех форм, поэтому при отрисовке растягивается. Так вот было замечено, что при его отрисовке, он сначала рисуется в некотором одном и том же месте экрана (не окна приложения, а в глобальных координатах!) нерастянутый, а потом уже нормально отбражается форма приложения. При этом предыдущая косячная отрисовка исчезает. Но видна она только в тех местах, где это пересекается с формой приложения. Т.е. если эти области не пересекаются, то никакого эффекта не видно. При масштабе экрана 96dpi (стандартный) область, где сначала отрисовывается эта неотмасштабированная картинка вот такая: При масштабе 120dpi соответственно побольше: Вот в таком случае взаимного положения окна приложения и этой области никакого неприятного эффекта нет: Вот в таком случае левую отрисовку видно в заштрихованной области: Отрисовка выполняется так:
Логгированием я проверил, что кординаты в DrawImage всегда одинаковые. Т.е. никаких выездов за форму нет. Кто-нибудь сталкивался с таким? Может это стандартный глюк GDI+ и уже известно как его лечить? В приложении несколько диалогов, все они наследники этого CBaseDlg и глюк проявляется только в некоторых из них. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |