如何从Windows 10上的可调整大小的表单中删除顶部栏?

ReA*_*ReA 5 forms delphi borderless

我正在尝试删除表单的标题栏,同时保持边框具有可调整大小的形式.我设置BorderStylebsNone并重写CreateParams程序:

procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style or  WS_BORDER or WS_THICKFRAME;
end;
Run Code Online (Sandbox Code Playgroud)

我面临的唯一问题是表格上边缘的白条(在胜利10中):

截图

我怎么能摆脱这个白色的酒吧?

Nas*_*out 5

采用win API方式将消耗大量时间,并且可能证明是如此困难.如果你愿意这样,我强烈推荐它.但是对于目前这段时间,我们可以快速解决您的问题.

通过更改标题栏的样式来使用VCL样式

转到Tools-> Bitmap Style Manager并重新打开Windows 10样式(因为你想在Windows 10中使用它)

转到Objects-> form->title并将高度更改为5.

在IDE的对象检查器中取消选中边框图标并将标题设置为' '.

结果将是一个标题栏很薄的表单,它是一个边框.

在此输入图像描述

您可以进一步修改标题栏的外观,使其看起来与边框完全相同.

并看到这一点,Vcl.Forms.TFormStyleHook.PaintNC以确切知道如何使用样式挂钩完成此操作.