![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
![]() Может, может. Сейчас вот сижу капаюсь. BitBlt я пробовал. С него собственно и начал. Функции возвращают 0 при увеличении картинки где-то с 500*500 У меня в окне есть область которая заполняется фоном с градиентом. Эту область я мышой могу ресайзить. Пока размер области небольшой, все вроде работает |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Конечно, не все OLE-компоненты универсальны и удобны, но не нужно судить так обо всех интерфейсах , я тоже сталкивался с некоторыми излишествами в OLE, но мы сейчас говорим конкретно об одном:
Здесь get_Handle возвращает HBITMAP, с которым можно работать как обычно, а метод Render делает очень полезную вещь: рендерит в указанный девайс любой кусок HBITMAP, с нужным масштабом, причем метод рендеринга выбирается тот, который поддерживается системой: если это битмап, то происходит нечто похожее на StretchDIBits, если упакованный жипех, то его собственный рендеринг. Т.е. Render избавляет нас от лишней мороки, да и о качестве говорить не приходится. Остальные методы, роли не играют, они просто дублируют соответствующие вызовы API, так что нагрузки особой на ресурсы не несут. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Так может у тебя с преобразованием координат какая-то ерунда? Там же есть ограничения... Или еще что-то в этом роде... Покажи кусок кода. Добавлено @ 12:12 Я думаю, что в этом случае ни IPicture, ни CImage тебя не спасут... нужно разобраться с координатами -------------------- ... |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
Я думаю не должно так как при небольших то размерах работает нормально а координаты считаются одинаково для любого размера. Мне этими функциями приходилось пользоваться так как градиент я ручками делал (массив заполнял). потом этот массив надо было в dc записывать. Сейчас попробовал FillGradient. Сижу и наслаждаюсь: в 3 раза быстрее, никаких глюков с прорисовкой, про память под массив париться не нужно. В общем пока одни достоинства. Спасибо Earnest и GremlinProg что пытались помочь P.S. Все равно странно почему же глюковало? Надо руки выпрямлять наверно.... |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Существуют ограничения -------------------- ... |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
однако же IPicture как раз и спасло, я уже говорил ) Лучше всего сразу о таких вещах сообщать, т.е. говорить не так, мол не работает функция, а сразу пояснять задачу и цели, тогда тебя будет проще понять. Действительно, специализированные функции, такие как AlphaBlend, BitBlt, StretchBlt, FillGradient и т.п. как правило работают намного быстрее, нежели их пытаться реализовать, пусть даже через прямой доступ. Прямой доступ к растру лучше использовать только когда необходимо применить к нему какой-то собственный алгоритм, который не имеет аналогов в API, либо когда нужен попиксельный анализ растра. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |