Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
12:03:2008, 23:04
|
|
Новенький ![]() Группа: Программист Сообщений: 14 Регистрация: 12:10:2006 Пользователь №: 7 079 Репутация: 0
|
Подскажите пожалуйста как сделать указанный мною цвет прозрачным через системную библиотеку user32.dll с помощью таких функций:
const TransparentColor = clLime; TransparentPercent = 80; WS_EX_LAYERED = $80000; WS_EX_TRANSPARENT = $20; LWA_COLORKEY = 1; LWA_ALPHA = 2; GWL_EXSTYLE = (-20); function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: BYTE; dwFlags: DWORD): Boolean; function GetWindowLong(Wnd: HWnd; Index: Integer): Longint; function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED) SetLayeredWindowAttributes(Handle, TransparentColor,(255 * TransparentPercent) / 100, LWA_COLORKEY) Сообщение отредактировал TRT - 12:03:2008, 23:05 |
|
Сообщение
#1
|
|
![]() |
|
|
13:03:2008, 12:55
|
|
Новенький ![]() Группа: Программист Сообщений: 14 Регистрация: 12:10:2006 Пользователь №: 7 079 Репутация: 0
|
Вопрос снимается
const TRANSPARENT_COLOR = clLime; WS_EX_LAYERED = $80000; GWL_EXSTYLE = (-20); LWA_COLORKEY = 1; LWA_ALPHA = 2; function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: byte; dwFlags: DWORD): BOOL; stdcall; external 'user32.dll'; procedure TForm1.FormCreate(Sender: TObject); begin Form1.Color := TRANSPARENT_COLOR; SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(Handle, TRANSPARENT_COLOR, 0, LWA_COLORKEY); end; |
|
Сообщение
#2
|
|
![]() |
|
Текстовая версия | Сейчас: 5:07:2008 - 22:32 |