Re: Еще вопросик
Здравствуйте !
> Спасибо, Виктор. Да, действительно, все гораздо проще.
>
> А как быть с прозрачностями? Причем, хотелось бы, чтобы прозрачнос
> ть могла быть
> различной для разных частей окошка, да еще чтоб работало на виндах
> поменьше,
> чем Win2000.
Смотрел описание SetLayeredWindowAttributes в MSDN 2003 -
там буквально написано :
Minimum operating systems Windows 95, Windows NT 3.1
Странно... Всегда думал, что она только в 98 - х виндах
появилась (это насчет Win2000).
А вот разная прозрачность для разных частей - даже не знаю что и
сказать... В винде такой поддержки нет.
В общем плане для изображений различная прозрачность достигается
выполнением квартернарных растровых операций с определенными
значениями данных альфа-канала. То есть есть изображение-источник,
изображение-приемник, маска (данные альфа-канала, каждый пиксел
которой и задает прозрачность соответствующего пиксела источника),
кисть (в общем случае кисть определает фрагменты изображения, в которых
производится альфа-слияние, то есть это как бы маска наложения).
В Win GDI, насколько я помню, то ли вообще квартернарные операции
не поддерживаются, то ли их всего пара.
Вообще, у окна может быть расширенный стиль WS_EX_TRANSPARENT.
Если его установить, то окно будет перерисовываться только после
перерисовки всех окон под ним. Пробовал как то использовать это
для реализации прозрачности - ничего хорошего - просто глюки (сильное
"моргание", смазывание изображения при пересечении границ других
окон).
Так что виндовыми средствами реализовать переменную прозрачность корректно,
наверно, лио нельзя, либо проблематично.
> Думаю, что сложно, поэтому особо не настаиваю на подд
> ержке старых
> виндов. Зато какое впечатление производит!
Да, раньше ка то тоже увлекся этим.
Кстати, в следующем номере рассылки
"Visual С++ - расширенное программирование"
(http://subscribe.ru/catalog/comp.soft.prog.qandacpp)
об этом тоже немного пойдет речь - там будет рассматриваться
создание компонента SplashScreen. Кстати, рассылку недавно перевели
в основной каталог (подписчиков за несколько дней стало 1681 - круто) !
Vic.
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.prog.prog&email=
http://subscribe.ru/ mailto:ask@subscribe.ru