Вниз
Скачать: CL | DM;

Прозрачный потомок TCustomControl   Найти похожие ветки 

 
SergeyB ©   (2002-04-04 13:47) [0]

Подскажите, как добиться, чтобы фон потомка TCustomControl был прозрачным?
csOpaque в ControlStyle почему-то не помогает, может быть есть тонкости его использования?
Всем спасибо.


 
Song ©   (2002-04-04 16:12) [1]

Вы не правильно поимаете смысл csOpaque.
Это подмножество предназначена для "неперерисовки" фона. Но это фраза не означает, что он не будет рисоваться вообще, и фон будет прозрачным, а обозначает то, что при перерисовке компонента, например на onPaint, фон не будет изменяться. Это делают иногда, чтобы какой-то элемент не моргал при частом обновлении его содержимого.


 
SergeyB ©   (2002-04-11 13:33) [2]

Наконец я нашел один способ как это сделать - . Если кому будет интересно - ниже функция Paint потомка TCustomControl (здесь просто игра с формой - эллипс с дыркой). Дополнительно нужно будет переопределять регионы в procedure Resize(); override;.

procedure TShapedControl.Paint();
const
RegionSet: boolean = false;
var
rgn: HRGN;
begin
if not RegionSet then begin
region:=CreateEllipticRgn(0,0,Width,Height); // region - определен в TShapedControl
rgn:=CreateEllipticRgn(Width div 3,Height div 3,2*Width div 3, 2 * Height div 3);
CombineRgn(rgn, region, rgn, RGN_DIFF);
SetWindowRgn(Handle, rgn, true);
DeleteObject(rgn);
RegionSet:=true;
end;
// Основная прорисовка ...
end;



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.008 c
14-81067
fishka
2002-03-20 14:29
2002.04.25
Переписать игрушку с компашки с защитой. Можно ли это сделать, чтобы работало корректно?


1-80990
volodya_
2002-04-12 15:00
2002.04.25
Как сделать чтобы при нажатии на форме стандартной


14-81050
Sound
2002-03-20 02:00
2002.04.25
Срочные вопросы


1-80870
Di_wind
2002-04-14 00:22
2002.04.25
си++ Шаблон.


3-80834
trever
2002-04-05 13:11
2002.04.25
Как обновить содержимое дблукапкомбобокса?




   Наверх