如何更改窗口边框大小?

时间:2010-12-23 22:16:13

标签: delphi

我删除了窗口的标题栏,所以它现在只有一个边框。我想要将BorderStyle设置为bsNone,但我想删除边框。我该怎么办?

让我解释一下。我想像Photoshop GUI一样。如果我将边框样式设置为bsNone,我将在win7上丢失很多功能。我尝试使用GraphicControls而不是Form Caption栏来移动窗口(通过处理WMNCHitTest消息)。它工作但双击不会最大化并恢复窗口当边框样式是bsNone但但是当它是bsResizable时一切正常。我想将BorderStyle设置为bsResizable,但我想删除边框,就像它是bsNone一样

3 个答案:

答案 0 :(得分:2)

您可以将表单的边框设置为bsNone,然后将一个面板添加到表单中。将面板的align属性设置为alClient,并根据需要调整其边框。您可以控制内部和外部斜面及其宽度为1像素粒度。由于Panel1是一个容器,所以很容易将所有内容拖到它上面,就好像它就是表单本身一样。在设计师中,它几乎是不可见的。

如果您不熟悉它,可以使用结构视图将所有控件从一个容器拖动到另一个容器(在旧版本中称为对象树视图)。这使得您无需重新设计表单即可完成此操作。如果面板本身有问题,您可以随时将其发送到后面并将所有其他控件保留在表单上。它看起来完全一样,但是控件保持TForm父级而不是TPanel父级。在设计师中维护它只是一件额外的事情。

话虽如此,我还建议考虑梅森关于非标准用户界面的评论。

答案 1 :(得分:1)

将bordertyle设置为“bsSizeToolWin”不是一个选项吗?它将是一个更薄的边框,但它可以调整大小,它仍然符合Windows标准......

答案 2 :(得分:0)

我还没有看过最新的Photoshop,但我想你需要这样的东西:http://delphihaven.wordpress.com/2010/04/22/setting-up-a-custom-title-bar-reprise/