Еще вопросик

Спасибо, Владимир, за такую показательную программулю. Все вполне ясно.
Есть одна волшебная функция :
int SetWindowRgn(
HWND hWnd, // handle to window
HRGN hRgn, // handle to region
BOOL bRedraw // window redraw option
);
и все :-)
Спасибо, Виктор. Да, действительно, все гораздо проще.
А как быть с прозрачностями? Причем, хотелось бы, чтобы прозрачность могла быть
различной для разных частей окошка, да еще чтоб работало на виндах поменьше,
чем Win2000. Думаю, что сложно, поэтому особо не настаиваю на поддержке старых
виндов. Зато какое впечатление производит!
-*Информационный канал 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
Здравствуйте !
Смотрел описание 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