5

我正在尝试删除表单的标题栏,同时保持边框具有可调整大小的表单。我设置BorderStylebsNone并覆盖该CreateParams过程:

procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style or  WS_BORDER or WS_THICKFRAME;
end;

我面临的唯一问题是表单顶部边缘的白条(在 win 10 中):

截屏

我怎样才能摆脱这个白条?

4

3 回答 3

5

采用 win API 的方式会耗费大量时间,而且会非常困难。如果你愿意这样做,我强烈推荐它。但是目前,这里可以快速解决您的问题。

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

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

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

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

结果将是一个带有非常薄的标题栏的表单,它是一个边框。

在此处输入图像描述

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

并查看此Vcl.Forms.TFormStyleHook.PaintNC内容以确切了解如何使用样式 Hooks 完成此操作。

于 2017-10-22T18:27:13.100 回答
-1

它不是由 Windows 10 上的 Delphi 处理的!您必须使用调整工具来控制窗口内的边框大小。我使用 winaero (www.winaero.com) 并将窗口边框减少到 1 并将填充到零。 在此处输入图像描述

于 2018-07-25T17:24:18.590 回答
-1

对于 firemonkey (fmx) 用户:您可以通过样式来做到这一点。

于 2021-03-10T14:20:09.743 回答