我正在使用Delphi 2009 VCL TProgressBar作为一种“空/满”仪表。
在Vista上,启用Aero主题后,会有一个与之关联的动画,这对于测量仪来说很烦人且不合适。
有没有办法禁用此功能(不是通过调整用户的主题设置!)来阻止此控件上的动画?
为了澄清,我想要的东西基本上与Windows资源管理器中的“磁盘空间使用”米相同。没有动画,但仍然有漂亮的边框和阴影效果。
更新
我知道我需要一个“米”,而不是一个真正的进度条。如何使用标准的Windows进度条控件实现主题仪表?
答案 0 :(得分:11)
根据Vista UI guidelines for progress bars,您根本不应该将TProgressBar用于此类目的,它声明:
仅将进度条用于进度。使用米来表示与进度无关的百分比。
有许多针对Process Automation应用程序等的第三方组件(例如Abakus VCL),您可以使用其中一个控件吗?
答案 1 :(得分:10)
您可以尝试为该控件关闭主题;
SetWindowTheme(ProgressBar.Handle, ' ', ' ');
答案 2 :(得分:3)
在http://rmklever.com/尝试VistaProBar 它 NOT 有与之相关的动画。
答案 3 :(得分:1)
答案 4 :(得分:0)
看看this forum thread。这是我找到的唯一有希望的链接,第一个帖子提到了不同的进度条状态,因此更改属性Smooth,State和Style可能无济于事。
如果上次发布的提示确实是以米为单位绘制进度条的唯一方法,那么最好的选择是创建TProgressBar的后代类,覆盖WM_PAINT处理程序,检查Vista和启用的主题,在这种情况下,使用UxTheme中的函数绘制控件的不同部分。