06.11.2013, 20:01
|
|
Активный
|
|
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
|
|
Решился переписать этого паучка, используя winapi и gdi+
Не получается передать форме прозрачность от png
Код:
procedure initialized;
Var
x_pos,y_pos:integer;
GPImage:TGPImage;
Stream : TStream;
Aptr : IStream;
begin
Randomize;
x_pos := getsystemmetrics(sm_cxscreen) div 2 - 50; //Центр экрана - форма
y_pos := getsystemmetrics(sm_cyscreen) div 2 - 30; //Центр экрана - форма
INST := GetModuleHandle(nil);
with WinClass do
begin
Style := CS_HREDRAW or CS_VREDRAW; //стиль класса главного окна
hIcon := LoadIcon(INST, MAKEINTRESOURCE('MAINICON')); //иконка программы
lpfnWndProc := @WindowProc; //назначение обработчика сообщений
hInstance := INST;
hbrBackground := COLOR_BTNFACE + 1; //цвет окна
lpszClassName := WndClassName; //класс окна
hCursor := LoadCursor(0, IDC_ARROW); //активный курсор
end;
InitCommonControls;
Windows.RegisterClass(WinClass); //регистрация класса в системе
Handle := CreateWindowEx(0, WndClassName, WndClassName,
WS_POPUP or WS_VISIBLE or WS_EX_LAYERED or WS_EX_TOPMOST, x_pos , y_pos, 100, 60, 0, 0,INST, nil); //Создание главного окна
DC:=GetDC(Handle); //Определяем контекст
GraphicsGDIPlus:=TGPGraphics.Create(DC); //Создаём графику на контексте
try
Stream := TResourceStream.Create(HInstance, 'SPLASH_'+inttostr(Random(7)), RT_RCDATA); //Загрузка PNG из ресурсов
try
Aptr := TStreamAdapter.Create(Stream, soReference) as IStream; //Грузим стрим в интерфейс
GPImage:=TGPImage.Create(aptr); //Создаём картинку из интерфейса
GraphicsGDIPlus.DrawImage(GPImage, 0, 0, 512, 1024); //выводим на контекст
finally
Aptr := nil; //Освобождаем интерфейс
Stream.Free;
end;
finally
//Execute(A);
end;
end;
так отрисовывается на форме... а как сюда прозрачность прикрутить?
Использовать то что в изначальном VLC паучке -
Код:
UpdateLayeredWindow(Handle, 0, nil, @BitmapSize, Bitmap.Canvas.Handle,
@BitmapPos, 0, @BlendFunction, ULW_ALPHA);
Не понял как её прикрутить,... крутил вертел, - пустая форма получается
__________________
Програмистами не рождаются, ими становятся!
|