How to use the alpha transparency features included in Windows 2000 and XP (Views: 28)
Problem/Question/Abstract: How to use the alpha transparency features included in Windows 2000 and XP Answer: { ... } const WS_EX_LAYERED = $80000; LWA_COLORKEY = 1; LWA_ALPHA = 2; type TSetLayeredWindowAttributes = function( 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; procedure TfBaseSplash.FormCreate(Sender: TObject); var Info: TOSVersionInfo; F: TSetLayeredWindowAttributes; begin inherited; Info.dwOSVersionInfoSize := SizeOf(Info); GetVersionEx(Info); if (Info.dwPlatformId = VER_PLATFORM_WIN32_NT) and (Info.dwMajorVersion >= 5) then begin F := GetProcAddress(GetModulehandle(user32), 'SetLayeredWindowAttributes'); if Assigned(F) then begin SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED); F(Handle, 0, Round(255 * 80 / 100), LWA_ALPHA); end; end; end; |