为什么Delphi 2010 TRibbon在Windows XP上控制“闪烁”,而不是Vista / 7?

前端之家收集整理的这篇文章主要介绍了为什么Delphi 2010 TRibbon在Windows XP上控制“闪烁”,而不是Vista / 7?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到当我使用Delphi 2010附带的TRibbon控件时,它在我的 Windows 7系统上运行完美.但是,应用程序在具有“经典主题”的Windows XP系统上有一些奇怪的绘画问题(我没有尝试过playschool主题).

我知道DevExpressTMS Software还有其他功能区组件,但购买第三方控件不是此项目的选项.

有没有人有这个问题,或者知道解决方案?

解决方法

很可能是因为Windows 7使用“桌面合成”,这实际上意味着将组件绘制到屏幕外位图,然后复制到显示器上.在XP中,组件通常直接绘制到显示器上(如果组件首先擦除那里的内容并覆盖“干净的平板”,则可能导致闪烁).

Delphi支持双缓冲,它完成了同样的事情.如果你将功能区的DoubleBuffered属性设置为True(在代码中,因为它没有发布)那么这应该避免闪烁(以额外的内存为代价,在绘制时分配和移动) – 但是,我应该说,我没有’实际上用TRibbon试了一下.

请注意,如果将DoubleBuffered设置为True,则在Windows 7(或Vista)上运行时不会产生额外开销.在运行桌面合成的Windows版本上运行时,VCL的代码会跳过屏幕外位图业务.

猜你在找的Delphi相关文章