我希望VCL表单具有圆角,如下图所示:
(For现在不需要阴影,只需要圆角)。
我已经试了一些代码,但似乎没有任何变化。
unit UMainWindow;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
type
TFMainWindow = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
FMainWindow: TFMainWindow;
implementation
procedure TFMainWindow.FormCreate(Sender: TObject);
var
rgn: HRGN;
begin
rgn := CreateRoundRectRgn(0, 0,ClientWidth,ClientHeight,40,40);
SetWindowRgn(Handle, rgn, True);
end;
end.
这是我的结果
1条答案
按热度按时间5ktev3wc1#
在Windows 11中,现在可以使用以下方法(从下面提到的Win11Forms.pas复制):
GitHub上有两个项目以两种不同的方式执行此操作。https://github.com/checkdigits/rounded_corners为您提供了一个函数,您可以在其中传递一个句柄(它只是 Package 了上面的函数),https://github.com/marcocantu/DelphiSessions/tree/master/Win11_Delphi11/Win11Round包含一个单元“Win11Forms”,该单元向vcl.forms TForm类添加了设置默认值并允许覆盖默认值的功能。