В Windows есть для этого ф-я SetLayeredWindowAttributes, вот пример её использования:
Code: |
unit Win2k; interface uses Graphics, Windows;
function SetLayeredWindowAttributes( hwnd : HWND; // handle to the layered window crKey : TColor; // specifies the color key bAlpha : byte; // value for the blend function dwFlags : DWORD // action ): BOOL; stdcall;
function SetLayeredWindowAttributes; external 'user32.dll'; implementation
end.
program WinLayer;
uses Windows, SysUtils, Win2k in 'Win2k.pas';
const WS_EX_LAYERED= $80000; LWA_COLORKEY = 1; LWA_ALPHA = 2;
var Hndl : THandle; Transp : Byte;
begin Writeln('Windows2000 Layer <- build by AK ->'); Writeln(' Usage: WINLAYER.EXE [window name] [Transp (0-255)]'); Writeln(' Example: WINLAYER "Calculator" 200'); Writeln; if ParamCount <> 2 then exit; Hndl := FindWindow(nil, PChar(ParamStr(1))); Transp := StrToIntDef(ParamStr(2), 128); if SetWindowLong(Hndl, GWL_EXSTYLE, GetWindowLong(Hndl, GWL_EXSTYLE) or WS_EX_LAYERED) = 0 then Writeln('Error !');
if not SetLayeredWindowAttributes(Hndl, 0, Transp, LWA_ALPHA) then // ^^^ степень прозрачности // 0 - полная прозрачность // 255 - полная непрозрачность Writeln('Error !'); end. |
- Назад
- Вперёд >>
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!