Форум - Ответы     (  К темам )
 ?  Dr.Phoenix: Как сделать окно произвольной формы (напр. буквой Zю :) (12-12-2002 20:39:44)
Расскажите, как делать красивые окна, а еще лучше покажите исходник
с подробным описанием.
Заоанее пасиба.
 Владимир (12-12-2002 21:23:37) http://cbuilder.ru
Посмотрите на Форуме тему


? nike: Как делают такие формы, как, например, у mediaPlayer'a в WinMe? (30-11-2002 01:14:27)


там это есть
 Devnvd (13-12-2002 09:42:27)
Окно там как и везде прямоугольной формы. Если не верите, то сделайте так:
В отработчике Hook'а WH_GETMESSAGE или WH_CALLWNDPROC, расположенного в DLL,
сделайте окну player`а: SetWindowRgn(hWndHook,NULL,TRUE);
То есть вся эта форма является всего лишь регионом, с которыми вы могли работать и в Win3.0. Только скорости машин тогда было маловато, чтобы подставить в качестве отображаемой, именно отображаемой(!), области регион.
Создать регион можно с помощью разных функций:
CreateRectRgn,CreateEllipticRgn,CreatePolygonRgn,...
Вы можете комбинировать регионы с разными условиями: Сумма областей, вычетание из одной области другой, перекрытие областей,... с помощью CombineRgn.
С помощью функции SetWindowRgn(hWndHook,hRgn,TRUE) вы можете оформить область согласно сделанному вами региону, но только в рамках прямоугольника окна. Если область будет выходить за эти рамки, то она прорисовываться не будет.
 AndreyAGSoft (16-12-2002 13:10:13) http://andreyagsoft@andreyagsoft.narod.ru/
CreateRGN
SetWindowRGN
***
GПодробнее на mail andreyagsoft@narod.ru


support@cbuilder.ru