![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как убрать прозрачность окна?
Вадим © (2003-12-02 05:10:00)
Устанавливаю прозрачность окна так:
AStyle := GetWindowLong(hWnd, GWL_EXSTYLE);
SetWindowLong(hWnd, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
SetLayeredWindowAttributes(hWnd, $FFFFFF, Value, LWA_ALPHA);
а как ее снять?
Вадим (2003-12-03 08:47:00) [1]
> MBo © (02.12.03 06:56) [2]
> Так попробуй
> SetWindowLong(hWnd, GWL_EXSTYLE, AStyle and (not WS_EX_LAYERED));
Окно все равно медленно перерисовывается при изменении размера. Как же быть?
MBo (2003-12-02 06:56:00) [2]
Так попробуй
SetWindowLong(hWnd, GWL_EXSTYLE, AStyle and (not WS_EX_LAYERED));
Нурик (2003-12-02 06:49:00) [3]
Просто вместо Value нужно подставить значение 255, и всё!
//Для установки прозрачности
procedure TForm1.Button1Click(Sender: TObject);
var
AStyle: longint;
h: hwnd;
begin
h:=Application.MainForm.Handle;
AStyle:=GetWindowLong(h,GWL_EXSTYLE);
SetWindowLong(h, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
SetLayeredWindowAttributes(h, $FFFFFF, 100, LWA_ALPHA);
end;
//Для снятия прозрачности
procedure TForm1.Button2Click(Sender: TObject);
var
AStyle: longint;
h: hwnd;
begin
h:=Application.MainForm.Handle;
AStyle:=GetWindowLong(h,GWL_EXSTYLE);
SetWindowLong(h, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
SetLayeredWindowAttributes(h, $FFFFFF, 255, LWA_ALPHA);
end;