eXeL@B —› Вопросы новичков —› Дэбильный вопрос по програмированию |
Посл.ответ | Сообщение |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 25 декабря 2015 20:21 · Личное сообщение · #1 Когда-то давно отрисовывал цветные BMP картинки с прозрачным фоном. Вроде не сложно, но у меня нихрена не получаетцо! ЗАДОЛБАЛО! Короч посл действий: Стянул DrawTransparentBitmap с просторов инета Code:
Вызываю её в MFC: Code:
Да ни фига не отрисовывает в окне - хотя вроде всё ок должно быть! Кто просвятитъ? Мож в HDC явный косяк? Или замуты с owner_dwar?? Заранее БОЛЬШОЕ СПАСИБО! |
|
Создано: 25 декабря 2015 20:34 · Поправил: DenCoder · Личное сообщение · #2 Когда-то баловался с капчей, тоже загружал картинки bmp, jpg, tif... Это код загрузки картинки Code:
но этого мало, вроде как нужен и обработчик WM_PAINT Code:
Использован gdi+. Проверил только сейчас - код рабочий. Уже не понмю, что там ещё написано, и для чего так, не хочу разбираться... Для простоты было налеплено всё в классе диалогового окна: Code:
----- IZ.RU | Сообщение посчитали полезным: ELF_7719116 |
|
Создано: 26 декабря 2015 00:04 · Поправил: dosprog · Личное сообщение · #3 ELF_7719116 пишет: Да ни фига не отрисовывает в окне - хотя вроде всё ок должно быть! Отрисовывается нормально. Только я не заметил какой-либо зависимости от параметра <cTransparentColor>. Надо разбираться, что там за битоверчение. | Сообщение посчитали полезным: ELF_7719116 |
|
Создано: 26 декабря 2015 07:57 · Поправил: UniSoft · Личное сообщение · #4 может проще задействовать соответствующую API из msimg32.dll? TransparentBlt() или сразу GdiTransparentBlt() из gdi32.dll http://rsdn.ru/archive/vc/issues/pvc045.htm --- dosprog пишет: Если есть способ обойтись без этого, то лучше обойтись без этого. А смысл изобретать велосипед? ну не нравится msimg32.dll, тогда можно вызывать сразу напрямую GdiTransparentBlt() из gdi32.dll, если не требуется поддержка Win98 | Сообщение посчитали полезным: ELF_7719116 |
|
Создано: 26 декабря 2015 12:54 · Поправил: dosprog · Личное сообщение · #5 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 27 декабря 2015 19:11 · Личное сообщение · #6 Получилось вообщем! dosprog пишет: Отрисовывается нормально. Только я не заметил какой-либо зависимости от параметра <cTransparentColor>. Почему, он отвечает за цвет, который не будет отрисовываться, тем самым обеспечивая прозрачность. Вот тут некие подробности: http://www.sources.ru/msdn/howto/q79212.shtml UniSoft пишет: TransparentBlt() Тоже, как варианТ! Есть ещё вариант с расширением PNG - прозрачность черезе альфа-канал |
|
Создано: 27 декабря 2015 20:21 · Поправил: dosprog · Личное сообщение · #7 |
eXeL@B —› Вопросы новичков —› Дэбильный вопрос по програмированию |