![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
TGrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: 1 Всего: 1 |
Добрый день, может кто может подсказать, я давно видел статью, как делать форму в виде картинки без использования Регионов. Там форма была в точности, как картинка с тенями и без квадратного очертания.
Может у кого есть код или доходчивая статья, за счет чего и как это делается? Спасибо. |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Это сообщение отредактировал(а) 586 - 4.12.2010, 17:03 |
|||
|
||||
TGrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: 1 Всего: 1 |
Да я знаю на счет этой функции, но она делает полностью окно прозрачным вроде? Ну а если нарисовать картинку, а вокруг нее залить все прозрачным цветом, то останется рамка окна.
Я читал, что это как-то делается через ДИБ битмапы и PNG картинки, но я не нашел полного руководства, что к чему. |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
||||
|
||||
TGrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: 1 Всего: 1 |
Попробую.
Но вообще меня интересует вот такой результат. http://www.codeproject.com/KB/GDI/pxalphablend/img2.gif |
|||
|
||||
586 |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Если ещё полупрозрачность нужна, тогда так:
|
||||
|
|||||
TGrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: 1 Всего: 1 |
И что в картинке будет полупрозрачным?
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Вся картинка. А фон будет невидимым. Вот так будет: Присоединённый файл ( Кол-во скачиваний: 35 ) ![]() |
|||
|
||||
TGrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: 1 Всего: 1 |
Да получилось, но что у меня, что у вас на скрине, видно, что очертание рисунка пострадало. А на том скрине, что я привел, там даже тени имеются от рисунка. Я вот о чем)
Хотя этот метод тоже возьму на заметку. Есть еще идеи?) |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
||||
|
||||
TGrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: 1 Всего: 1 |
Да я думаю дело не в этом. Я как только картинку делаю БМП формата стразу теряются ее цвета и она становиться невзрачной.
Вот нашел статью, где описывается работа с альфа-каналом http://www.infocity.kiev.ua/graf/content/graf093.phtml но там тоже ничего конкретного, все в общих чертах, а что для чего и как - умалчивается. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
эту проблему немного обсуждали тут: http://forum.vingrad.ru/forum/topic-264876...258C/index.html Добавлено через 5 минут и 53 секунды кстати, загляни еще раз в RSDN, присмотрись к прозрачной картинке с текстом RSDN, видишь, шум есть даже там :)) -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
TGrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: 1 Всего: 1 |
Да шум есть, но то обсуждения были для 98 винды) Может что изменилось. Та и вот в том скрине, что я привел первым, там все четко и красиво)
Но там я прочитал используется либа одна, чтобы открывать ПСП файлы ну и сам код тоже не документирован. Нашел вот такую ссылочку http://blog.duck17.net/post/Per-pixel-Alph...-Win32-API.aspx но, я что-то не пойму, как делать БМП с альфа-каналом. |
|||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
в 2009-м году 98 вендой, я не настолько суров :))
ну я практически уверен, что тень там формируется одним растром, за счет градаций четвертой компоненты (альфа-канала), а не полутонов с остальными тремя, т.е. надо использовать UpdateLayeredWindow с ULW_ALPHA, по ссылке кстати хороший пример, смотри функцию Paint тут через временный HDC в UpdateLayeredWindow передается картинка с альфаканалом и для нее устанавливаются атрибуты BLENDFUNCTION, аналогично как в функции AlphaBlend альфаканал можно задать в PNG, любым соответствующим редактором, либо в примере показан способ, как это сделать с обычным битмапом, испрльзуя фотошоп, только вот чтобы его прочитать, придется использовать DIB'ы, поэтому тут и стоит SetDIBitsToDevice, простой LoadImage будет игнорировать альфу, хотя по идее там есть возможность задействовать DIB-секцию BitBlt, конечно же :)) Это сообщение отредактировал(а) GremlinProg - 11.1.2011, 09:39 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
TGrey |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: 1 Всего: 1 |
Так, уточню. Тобишь PNG формат загрузится через LoadImage, или что PNG, что Битмап надо грузить через секции?
Кстати какой редактор то? МСПэинт подойдет? Или фотошоп? И как это хоть сделать)? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |