WinAPI进度条:如何停止动画?

4
有没有可能停止/抑制进度条中“脉冲”动画效果?(我记得这是在vista主题中引入的)我们有一个可以被用户暂停的流程(以检查硬件或中间结果),虽然通常会有“暂停按钮已按下”的反馈,但进度条动画效果让它看起来像是流程仍在运行。(简单的方法-隐藏进度条 - 不是最佳选择,因为即使在暂停状态下进度仍然有一定的相关性。)
2个回答

4

由于您正在使用引入自Vista版本通用控件库的进度条,因此可以比仅仅禁止动画更好地进行操作。

进度条具有三种状态:

  • 正常正常进度条为绿色
  • 暂停暂停进度条为黄色
  • 错误错误进度条为红色

您可以通过向进度条控件窗口发送PBM_SETSTATE消息来在这些状态之间切换。 wParam参数应为PBST_NORMALPBST_PAUSEDPBST_ERROR之一。 lParam参数应为0。

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

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


1

从问题中并不是很清楚,但听起来你正在以跑马灯模式显示进度条。 这是“我还活着,不知道需要多长时间但正在处理”的模式。 通过打开PBS_MARQUEE样式标志启用。

您可以使用PBM_SETMARQUEE消息控制动画。 允许您完全关闭它或显着增加动画时间,使其开始爬行。 对于“暂停”模式可能有些合适。 默认值为30毫秒,在1000毫秒时看起来相当缓慢。 完全冻结它并不是一个选项,但没有用户会盯着它看INT_MAX毫秒。


我更新了问题 - 我指的是即使进度条“卡住”,你仍然拥有的“脉冲”动画。谢谢! - peterchen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接