Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как убрать прозрачность окна?


Вадим ©   (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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо