WinAPI进度条:停止动画?

时间:2013-07-02 09:19:18

标签: winapi progress-bar windows-themes

是否可以停止/禁止进度条的“脉冲”动画? (这是与远景主题IIRC一起推出的)

我们有一个可以被用户暂停的过程(检查硬件或中间结果)。虽然通常会按下“暂停按钮”反馈来传达状态,但进度条动画会使进程看起来仍在运行。

(简单的方法 - 隐藏进度条 - 可能不是最理想的,因为即使在暂停状态下,进度也有些相关。)

2 个答案:

答案 0 :(得分:3)

由于您正在使用Vista版本的公共控件库中引入的进度条,因此您可以做到比简单地抑制动画更好。

进度条有三种状态:

  • 正常Normal progress bars are green
  • 暂停Paused progress bars are yellow
  • 错误Error progress bars are red

您可以通过发送进度条控制窗口PBM_SETSTATE message来切换状态。 wParam参数应为PBST_NORMALPBST_PAUSEDPBST_ERRORlParam参数应为0。

对于暂停和错误状态,脉冲动画均被抑制。

要检索进度条的当前状态,请发送PBM_GETSTATE message

答案 1 :(得分:1)

问题不是很清楚,但听起来你在选框模式下显示进度条。 “我还没死,不知道需要多长时间,但要努力”模式。通过打开PBS_MARQUEE样式标志启用。

您可以使用PBM_SETMARQUEE message控制动画。允许您完全关闭它或显着增加动画时间,以便它开始只是爬行。对于“暂停”模式可能有点合适。默认值为30毫秒,在1000毫秒时看起来非常令人毛骨悚然。完全冻结它不是一个选项,但没有用户会盯着INT_MAX毫秒。