Вниз
Скачать: CL | DM;

Aero Glass эффект   Найти похожие ветки 

← →
[dvs]digiman   (2005-11-09 23:00) [0]

Как можно похожий сабж реализовать (только не в viste):
- полупрозрачный заголовок
- градиентная прозрачность краев окон
- градиентная прозрачность тени окна (обычные виндовые тени от окон не в счет)

В качестве примера скин для winampa --Orion-- (http://www.winamp.com/skins/details.php?id=144161 или http://www.spuler.us/winamp/orion/orion.html)


← →
[dvs]digiman   (2005-11-09 23:04) [1]

p/s/ прога у меня на winapi без vcl


← →
[dvs]digiman   (2005-11-10 02:22) [2]

Попробовал сделать прозрачное окно по альфа-каналу битмапа,
но чего-то не выходит с UpdateLayeredWindow...

Кусок кода (только winapi):
---------------------------------------------------------

//...

Var scrDC, wndDC, memDC : HDC;
   hbm                 : HBITMAP;
   pptSrc              : TPOINT;
   pBlend              : TBLENDFUNCTION;

//...

   If uMsg=WM_PAINT Then BitBlt(wndDC,0,0,Width,Height,memDC,0,0,SRCCOPY);

//...

 Wnd := CreateWindowEx(WS_EX_TOPMOST Or WS_EX_TOOLWINDOW Or WS_EX_LAYERED,
                       ClassName,"abc", WS_POPUP, 100,100,300,110, 0,0,hInstance,Nil);
 scrDC := GetDC(0);
 wndDC := GetWindowDC(Wnd);
 memDC := CreateCompatibleDC(wndDC);
 hbm   := LoadBitmap(hInstance, "IMG");   // Картинка в ресурсе 300 x 110 x 32
 SelectObject(memDC, hbm);

 pptSrc.X := 0;
 pptSrc.Y := 0;
 With pBlend Do Begin
   BlendOp     := AC_SRC_OVER;
   AlphaFormat := AC_SRC_ALPHA;    
   BlendFlags  := 0;
   SourceConstantAlpha := 128;
 End;
 UpdateLayeredWindow(Wnd,scrDC,Nil,Nil,memDC,@pptSrc,RGB(255,0,0),@pBlend,ULW_ALPHA);

//...

---------------------------------------------------------

Если вместо UpdateLayeredWindow использовать например

SetLayeredWindowAttributes(Wnd,0,128,LWA_ALPHA)

то появляется просто прозрачное окно с картинкой


← →
Antonn ©   (2005-11-10 05:12) [3]

во первых, нужен 32 битный битмап.
в вторых, если пользоваться UpdateLayeredWindow, то забыть про SetLayeredWindowAttributes
в третьих, на VCL нужно еще было свойство установить SetWindowLong(H,GWL_EXSTYLE, GetWindowLong(H,GWL_EXSTYLE) or WS_EX_LAYERED).


← →
[dvs]digiman   (2005-11-11 14:21) [4]

1) у меня битмап 300x110x32 с альфа каналом (подготовлен в шопе)
2) SetLayeredWindowAttributes я не использую
3) Я создаю окно уже со стилем WS_EX_LAYERED

> Wnd := CreateWindowEx(WS_EX_TOPMOST Or WS_EX_TOOLWINDOW
> Or WS_EX_LAYERED,                        ClassName,"abc",
>  WS_POPUP, 100,100,300,110, 0,0,hInstance,Nil);



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.04 c
15-1143564693
geserx
2006-03-28 20:51
2006.04.16
проблема с браузерами!


2-1143980731
Khim
2006-04-02 16:25
2006.04.16
Нажатие кнопок меню на TAppBuilder


15-1143182243
Vlad Oshin
2006-03-24 09:37
2006.04.16
Под чего бы пристроить Piii 800Mhz 256ram 2scsi винта по 18Gb


9-1128328498
XCoder
2005-10-03 12:34
2006.04.16
Камера


2-1144137696
fast2
2006-04-04 12:01
2006.04.16
Где надо прописать переменную, чтоб ее "видели" все формы?




   Наверх