procedure TfrmRemoteData.DoInvisible; //透明
var
control: TControl;
index, margin, X, Y, ctlX, ctlY, i: Integer;
fullRgn, clientRgn, ctlRgn: THandle;
begin
margin := (Width - ClientWidth) div 2;
fullRgn := CreateRectRgn(0, 0, Width, Height); //创建总裁剪区域
X := margin;
Y := Height - ClientHeight - margin;
clientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);
CombineRgn(fullRgn, fullRgn, clientRgn, RGN_DIFF); //合并区域,RGN_DIFF差集
for index := 0 to ControlCount - 1 do //遍历控件
begin
control := Controls[index];
if (control is TWinControl) or (control is TGraphicControl) then
with control do
begin
if Visible then
begin
ctlX := X + Left;
ctlY := Y + Top;
// ctlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height);
ctlRgn := CreateRoundRectRgn(ctlX, ctlY, ctlX+ Width, c
Delphi 代码实现窗口透明+圆角边框
最新推荐文章于 2022-06-27 19:38:04 发布
本文档介绍了一种用Delphi代码实现窗口透明效果和圆角边框的方法。通过创建和合并剪切区域,遍历并处理控件,利用CreateRoundRectRgn函数设置圆角矩形区域,最后应用到窗口上,实现了窗口的透明和圆角效果。
摘要由CSDN通过智能技术生成