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

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

Static


MJH ©   (2002-08-19 06:31:00) 

Возможно ли окно класса сабж сделать прозрацным?
Т.е. как правильно прикрутить кисть?
Или никак и рисовать только вручную?


Ученик   (2002-08-19 10:37:00) [1]

procedure TForm1.WMCtlColorStatic(var Message : TWMCtlColorStatic);
begin
if Message.ChildWnd = FStaticHandle then begin
SetBkMode(Message.ChildDC, TRANSPARENT);
Message.Result := GetStockObject(NULL_BRUSH)
end else
inherited
end;


MJH   (2002-08-19 10:27:00) [2]

а теперь перефоазирую в более понятную форму:
Как на винапи, привязать кисть, созданную по CreateBrushIndirect к окну класса STATIC, созданному по CreateWindow("STATIC",***) ?
а флаг WS_EX_TRANSPARENT никакого эффекта не дает...


Ученик   (2002-08-19 09:22:00) [3]

как то это неправильно :)

procedure WMCtlColorStatic(var Message : TWMCtlColorStatic); message WM_CTLCOLORSTATIC;

procedure TForm1.FormShow(Sender: TObject);
begin
SetWindowLong(StaticText1.Handle, GWL_EXSTYLE,
GetWindowLong(StaticText1.Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT);
StaticText1.Brush.Style := bsClear
end;

procedure TForm1.WMCtlColorStatic(var Message : TWMCtlColorStatic);
begin
if Message.ChildWnd = StaticText1.Handle then
SetBkMode(Message.ChildDC, TRANSPARENT);
inherited
end;


Наверх

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