比较来自世界各地的卖家的域名和 IT 服务价格

Delphi: 透明或梯度框架

我有一个形式,我在这个活动中画出了一个渐变 Paint. 此外,我的表格中有一个框架。 我希望框架是透明的,以便看到表单的渐变或使用梯度绘制帧,如果不可用。

形式和框架不应该闪烁 :/

怎么做? 谢。

编辑:

正如我所看到的,有一个闪烁的框架透明度。 因此,现在对我最好的解决方案 - 覆盖 TFrame1.PaintWindow/DC: HDC/ 并绘制梯度框架背景。
已邀请:

快网

赞同来自:

以下是在帧中获得透明度的技巧,如下所述:
http://andrey.mikhalchuk.com/2 ... .html
.


type
TMyFrame = class/TFrame/
procedure CreateParams/var Params: TCreateParams/;override;
procedure PaintWindow/DC: HDC/; override;
public
constructor Create/AOwner:TComponent/;override;
end;

constructor TMyFrame.Create/AOwner: TComponent/;
begin
inherited;
Brush.Style := bsClear;
end;

procedure TMyFrame.CreateParams/var Params: TCreateParams/;
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT or WS_EX_COMPOSITED;
end;

procedure TMyFrame.PaintWindow/DC: HDC/;
begin
// Do not remove this comment to keep transparancy
end;


更新 :

大卫建议添加
WS_EX_COMPOSITED

在调整大小时避免闪烁的风格。
这应该添加到所有控件中。

要回复问题请先登录注册