Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2008, 13:11   #1
EdNovice
Пользователь
 
Регистрация: 13.04.2007
Сообщений: 65
По умолчанию Наложение растров

При помощи CreateDIBSection созданы два BitMapa. На первом рисуется график а на втором какая-либо фигура. Как наложить эти два битмапа так, чтобы второй DIB с прозрачным фоном лежал поверх первого.
Заранее благодарен!
EdNovice вне форума Ответить с цитированием
Старый 18.02.2008, 14:38   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

BitBlt, TransparentBlt
удобней вторая, цвет задал и всё
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 18.02.2008 в 14:41.
mutabor вне форума Ответить с цитированием
Старый 19.02.2008, 04:17   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

mutabor, не совсем. BitBlt и TransparentBlt для работы с контекстами, а у EdNovice - DIB-секции. Для них все удобства фактически сокращаются до одной единственной StretchDIBits (зато появляются другие) и вывод маскированных изображений превращается в довольно нудное занятие с промежуточными контекстами в памяти и варьированием последнего параметра между SRCCOPY, SRCAND и т.п. EdNovice, если выбор DIB чем-то обусловлен, попробую найти у себя примеры таких вещей, а так посмотрите, может быть достаточно обычных битмапов и того, что привел mutabor, да еще MaskBlt впридачу?
B_N вне форума Ответить с цитированием
Старый 20.02.2008, 07:44   #4
EdNovice
Пользователь
 
Регистрация: 13.04.2007
Сообщений: 65
По умолчанию

B_N, можно о вашем методе по подробнее!
К примеру:
Я создаю два совместимых с контекстом формы DC:
FChartDC := CreateCompatibleDC(ADC);
FRealDC := CreateCompatibleDC(ADC);
Для каждого DC создаю DIB секции:
FChartDIB := CreateDIBSection(FChartDC, FBitMapInfo, DIB_RGB_COLORS, ppvBits, 0, 0);
FOldChartDIB := SelectObject(FChartDC, FChartDIB);
FRealDIB := CreateDIBSection(FRealDC, FBitMapInfo, DIB_RGB_COLORS, ppvBits, 0, 0);
FOldRealDIB := SelectObject(FRealDC, FRealDIB);
На первом DC я рисую график, на втором фигуру. Как на первый DC наложит второй, так чтобы поверх первого отображалась фигура, с прозрачным фоном?
EdNovice вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Наложение" картинок и их подсветка .. crus HTML и CSS 3 04.07.2008 19:37