如何创建具有不同 Aero 玻璃框架的窗户?

Posted

技术标签:

【中文标题】如何创建具有不同 Aero 玻璃框架的窗户?【英文标题】:How do I create a window with different Aero glass frame? 【发布时间】:2011-09-21 05:16:55 【问题描述】:

我认为Windows 7 中有自定义窗口样式。像这样:

正如您所见,它与普通风格不同:

如何创建一个具有您在第一张图片中看到的样式的窗口?

【问题讨论】:

抱歉,我投票决定关闭,因为我不明白您想要制作一个程序 来创建第一个窗口。唉,我不能取消那次投票。 我希望您将需要 DwmExtendFrameIntoClientArea 和一些自定义绘画。我自己没有这方面的经验(有据可查,我是一个普通的普通人)。这篇著名的文章涵盖了玻璃上的非客户绘画:delphihaven.wordpress.com/2010/04/19/… 你要什么?你的意思是Windows主题颜色被忽略,窗口标题不透明? 【参考方案1】:

什么德尔福版本? Delphi 2010 本机可以做到这一点:

您只需要使用表单的GlassFrame 属性。您可能还想在这里阅读我的答案,并确保您也阅读了 cmets:Delphi support for Aero Glass and the DoubleBuffered property - what is going on and how do we use them?

【讨论】:

@Kermia,如果您在谈论我的“Delphi 2010 可以本地执行此操作”图像,它背后没有代码:它只是 Delphi 2010 上的一个表单,GlassFrame.Enabled = TrueGlassFrame.Top = 120. @Johan,抗锯齿文本和颜色键不能很好地协同工作,更不用说颜色键是 黑色。对于 The Brave,我猜正确的方法是使用 UpdateLayeredWindow,但我曾经去过那里,这是一个痛苦的世界。因为分层窗口不喜欢用户输入。 哦,好的。是否可以为放置在玻璃框窗口中的控件设置阴影? 不,没有自动的方式给控件一个阴影;但是你可以在控件后面放置一个类似阴影的半透明图像来模拟它。【参考方案2】:

那些事情是用玻璃成分颜色来完成的。

看这里:Changing the glass composition color (DWM) using delphi

【讨论】:

我正在输入类似的内容。 你只是快一点。 +1。您可能需要编辑提及,在 D2009-XE 中,您只需单击表单,然后在 Object Inspector 中将 GlassFrame.Enabled 属性设置为 true 即可立即完成大部分操作。 注意,博文中提到的未记录的 DWM 功能会系统范围持续更改组合颜色。即使重新启动后它仍然保持不变!

以上是关于如何创建具有不同 Aero 玻璃框架的窗户?的主要内容,如果未能解决你的问题,请参考以下文章

带有 WPF 的 Aero 玻璃框架上类似于 Windows 资源管理器的搜索框

Aero:如何在玻璃上绘制 ClearType 文本?

让Qt支持Win7的Aero和毛玻璃效果

PS 如何制作Vista的毛玻璃效果

1稀缺

玻璃隔断的分类