Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Кнопка с картинкой с прозрачностью


Автор: Riddik 25.5.2013, 19:47
Привет.

Вроде как обычные битмапы альфу не умеют?
Как такие штуки делаются: user posted image ?
Кнопки можно стандартные, но как использовать картинку с альфа-каналом (без GDI+)?
Приложение умеет загружать png-картинки. Как на кнопку после этого "посадить" эту картинку?

Автор: Dem_max 26.5.2013, 05:54
Загружается PNG, декодируется в BITMAP потом на стандартным битмапом делается
TransparentBlt() или GdiAlphaBlend() и дальше выводиться на экран.

если у тебя обычный BITMAP я бы воспользовался  с флагом LoadImage(................., LR_LOADTRANSPARENT)

ну и ссылки в тему

Самая главная: http://forum.vingrad.ru/act-Search/CODE/show/searchid-f1395d206d0d2f9d55b28a1ef43dbeb7/search_in-posts/result_type/topics/flag/search/highlite/transparentblt/index.html

http://forum.sources.ru/index.php?showtopic=275223&hl=transparentblt
http://forum.sources.ru/index.php?showtopic=325949&hl=transparentblt
http://forum.sources.ru/index.php?showtopic=353034&hl=transparentblt


P.S. а чем тебе GDI+ не угодил ???

Автор: Riddik 26.5.2013, 11:11
Спасибо! smile

Чем GDI+ не угодил? Да как-то совсем не сталкивался)

Автор: Dem_max 26.5.2013, 14:19
Просто с GDI+ это делается проще.
Вот держи пример рабочий, он загружает рисунок из ресурсов и выводит на окно, а из окна делает форму окна по контуру рисункa.
Тебе только не делать последнее(выделенным).





Автор: Riddik 26.5.2013, 18:44
Спасибо)

Автор: GremlinProg 27.5.2013, 07:52
Без GDI+ это делается переводом png в http://forums.getpaint.net/index.php?/topic/11201-alpha-32bits-bitmap-support-for-paintnet/ и загрузкой либо напрямую из ресурса (для версий растра v4 или v5 ) с последующим импортом через SetDIBits (соответственно, через DIB-секцию) либо через LoadImage (для первой версии растра), а сама отрисовка такого растра - через AlphaBlend.

Автор: Dem_max 27.5.2013, 09:02
Цитата

 либо через LoadImage

А что теперь уже LoadImage может загружать PNG формат ???

Автор: GremlinProg 27.5.2013, 09:14
Цитата(Dem_max @  27.5.2013,  11:02 Найти цитируемый пост)
А что теперь уже LoadImage может загружать PNG формат ???

нет, конечно, про png ни чего не писал

Автор: akizelokro 18.8.2013, 21:09
Многослойные окна не пробовали?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)