【问题标题】:Bad visual behavior with extended GlassFrame扩展 GlassFrame 的不良视觉行为
【发布时间】:2011-12-31 03:53:04
【问题描述】:

我有一个无法解决的大问题。

我正在编辑问题以简化实际发生的情况:

  1. 创建空白 Delphi 应用程序(我在 2007 年尝试过)

  2. 在表单构造函数(From.Create)中输入:

    GlassFrame.Enabled := True;
    GlassFrame.Bottom := 50;
    

这应该扩展 Windows Aero 主题。

现在尝试调整窗口大小,您会注意到不良行为;看起来很丑的黑色部分。

这是 Windows 错误还是?

我在 MS VC 下尝试过同样的事情,使用 API 调用,但结果是一样的。

无论如何,如果是 Windows 错误,我必须以某种方式解决它,因为我可以让我的应用程序看起来如此糟糕。

感谢您的帮助。

【问题讨论】:

  • 您根本没有发布任何代码,所以很难说可能是什么问题。您还标记了它C++ 和Delphi,但发布的代码或文本均不涉及它们。您可以编辑您的问题以澄清您使用的语言并添加显示您正在尝试做什么的代码吗?谢谢。 :)
  • 你可以试试这个很简单,这就是为什么我没有举任何例子:1)创建新的Delphi项目2)在mainform上启用GlassFrame 3)设置底部(进入GlassFrame部分)让说50 4) 开始并尝试调整大小 检查背景会发生什么。我在 D2007 中尝试过,也在一些较旧的 MS VS 中尝试过,但我不认为它在新版本中已修复,但这是由 Window 引起的错误。也许我错了,我希望我错了,因为这个应用程序看起来很糟糕!感谢您的帮助!
  • 再次,您能否编辑您的问题以提供更多信息(包括您评论中的说明)?就目前而言,它可能应该作为“不是一个真正的问题”而关闭。

标签: delphi api aero dwm


【解决方案1】:

DoubleBuffered := True 修复了黑色故障。

【讨论】:

  • 不幸的是它是一样的.. :(
  • 您是在构造时将DoubleBuffered 设置为True,还是在表单已经可见时?据我所知,在显示表单时您无法更改DoubleBuffered 属性。
  • 我在 FormCreate 中设置它。该事件应该在构造函数中调用。所以在 WM_SHOW 之前。
  • 另一个故障排除步骤:您是否尝试在其他机器上运行相同的编译应用程序以消除系统特定行为的可能性?
  • 是的,当然。它发生在带有 Aero 主题的 Vista 或 Win7 下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多