Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

Прозрачный компонент (наследник TWinControl)   Найти похожие ветки 

 
Vladix ©   (2006-11-15 16:03) [0]

День добрый!
Вопрос практически весь в теме. Нужно сделать компонент (наследник TWinControl - это обязательное условие!) прозрачным. Что для этого нужно перекрыть в TWinControl"е, чтобы он не трогал фон родительского окна?


 
thevalery ©   (2006-11-15 16:18) [1]

Можно перебить обычную отрисовку и стирание фона (WM_ERASEBKGND), но это чревато мусором, т.к. винда считает что на этом месте что-то по-любому должно отрисоваться и в целях оптимизации не дает родителю рисовать в "заявленной" компонентом области. Единственное что приходит на ум - воспользоваться механизмом "фигурных" форм (с помощью маски прозрачности), но применимо ли это здесь - не в курсе. Может проще постановку задачи подправить? ;-)


 
Vladix ©   (2006-11-15 16:37) [2]

Может быть моих знаний не хватает... Мне нужен компонент, способный быть контейнером для других компонентов, принимающий сообщения Windows и к этому еще и прозрачный; причем он должен быть прозрачным, а расположенные на нем компоненты - нет.


 
Наиль ©   (2006-11-15 16:39) [3]

Поставь кнопку на Image с рисунком.
Испытай такой код:
procedure TForm2.Button1Click(Sender: TObject);
Var
Region:HRGN;
begin
Region:=CreateEllipticRgnIndirect(Button1.ClientRect);
SetWindowRgn(Button1.Handle,Region,True);
DeleteObject(Region);
end;

Такой способ подходит для компонент, которые редко меняют размер. Например, для кнопок.


 
Vladix ©   (2006-11-16 14:04) [4]

Спасибо, при регионы-то я пока даже и не думал в этом контексте. Обязательно попробую


 
DVM ©   (2006-11-17 15:38) [5]


> т.к. винда считает что на этом месте что-то по-любому должно
> отрисоваться и в целях оптимизации не дает родителю рисовать
> в "заявленной" компонентом области.

Неправда. Это зависит от стилей родительского и дочернего окон.
WS_CLIPSIBLINGS и WS_CLIPCHILDREN



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
15-1192888838
TwentyThird
2007-10-20 18:00
2007.12.02
Как не скучать по "совку"? Поделить на 100 и радоваться!


3-1184178500
olevacho_
2007-07-11 22:28
2007.12.02
подключение к базе через FB-embedded


11-1179477505
=BuckLr=
2007-05-18 12:38
2007.12.02
Вопрос по consoleOut


5-1163595817
Vladix
2006-11-15 16:03
2007.12.02
Прозрачный компонент (наследник TWinControl)


2-1194528227
ЗфдЗфднср
2007-11-08 16:23
2007.12.02
оптимизация использования Ttimer