如何从 Windows 10 上的可调整大小的表单中删除顶部栏?
How to remove the top bar from a resizable form on Windows 10?
我正在尝试删除表单的 title-bar,同时保持边框具有可调整大小的表单。我将 BorderStyle
设置为 bsNone
并覆盖 CreateParams
过程:
procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_BORDER or WS_THICKFRAME;
end;
我面临的唯一问题是表格顶部边缘的白色条(在 win 10 中):
我怎样才能去掉这个白色条?
走向胜利 API 的道路将消耗大量时间,而且事实证明如此困难。如果你愿意走那条路,我强烈推荐它。但就目前而言,这里可以快速解决您的问题。
通过像这样更改标题栏的样式来使用 VCL Styles
转到 Tools-> Bitmap Style Manager
并重新打开 Windows 10 样式(因为您希望在 windows 10 中使用此样式)
转到 Objects-> form->title
并将高度更改为 5。
在您的 IDE 的 object 检查器中取消选中边框图标并将标题设置为 ' '
。
结果将是一个标题栏很细的表单,它是一个边框。
您可以进一步修改标题栏的外观,使其看起来与边框完全一样。
并查看此 Vcl.Forms.TFormStyleHook.PaintNC
以确切了解如何使用样式 Hooks 完成此操作。
Delphi 未在 Windows 10 处理!
您必须使用调整工具来控制 windows 内的边框大小。
我使用 winaero (www.winaero.com) 并将 window 边框减少到 1
并填充为零。
对于 firemonkey (fmx) 用户:您可以通过样式来做到这一点。
在 Delphi 11 和可能更早的版本中,您可以使用表单的 CustomTitleBar 属性:
Enabled=true
Height=0
ShowCaption=false
ShowIcon=false
SystemButtons=false
SystemColors=false
SystemHeight=false
Form.BorderStyle=bsSizeable
我正在尝试删除表单的 title-bar,同时保持边框具有可调整大小的表单。我将 BorderStyle
设置为 bsNone
并覆盖 CreateParams
过程:
procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_BORDER or WS_THICKFRAME;
end;
我面临的唯一问题是表格顶部边缘的白色条(在 win 10 中):
我怎样才能去掉这个白色条?
走向胜利 API 的道路将消耗大量时间,而且事实证明如此困难。如果你愿意走那条路,我强烈推荐它。但就目前而言,这里可以快速解决您的问题。
通过像这样更改标题栏的样式来使用 VCL Styles
转到 Tools-> Bitmap Style Manager
并重新打开 Windows 10 样式(因为您希望在 windows 10 中使用此样式)
转到 Objects-> form->title
并将高度更改为 5。
在您的 IDE 的 object 检查器中取消选中边框图标并将标题设置为 ' '
。
结果将是一个标题栏很细的表单,它是一个边框。
您可以进一步修改标题栏的外观,使其看起来与边框完全一样。
并查看此 Vcl.Forms.TFormStyleHook.PaintNC
以确切了解如何使用样式 Hooks 完成此操作。
Delphi 未在 Windows 10 处理!
您必须使用调整工具来控制 windows 内的边框大小。
我使用 winaero (www.winaero.com) 并将 window 边框减少到 1
并填充为零。
对于 firemonkey (fmx) 用户:您可以通过样式来做到这一点。
在 Delphi 11 和可能更早的版本中,您可以使用表单的 CustomTitleBar 属性:
Enabled=true
Height=0
ShowCaption=false
ShowIcon=false
SystemButtons=false
SystemColors=false
SystemHeight=false
Form.BorderStyle=bsSizeable