是否可以停止/抑制进度条的“脉冲”动画?(这是与 vista 主题 IIRC 一起介绍的)
我们有一个可由用户暂停的过程(以检查硬件或中间结果)。虽然有通常的“按下暂停按钮”反馈来传达状态,但进度条动画使它看起来像是进程仍在运行。
(简单的方法 - 隐藏进度条 - 不是最理想的,因为即使在暂停状态下,进度也有些相关。)
是否可以停止/抑制进度条的“脉冲”动画?(这是与 vista 主题 IIRC 一起介绍的)
我们有一个可由用户暂停的过程(以检查硬件或中间结果)。虽然有通常的“按下暂停按钮”反馈来传达状态,但进度条动画使它看起来像是进程仍在运行。
(简单的方法 - 隐藏进度条 - 不是最理想的,因为即使在暂停状态下,进度也有些相关。)
由于您使用的是 Vista 版本的通用控件库中引入的进度条,因此您可以做得比简单地抑制动画效果更好。
进度条有三种状态:
PBM_SETSTATE
您可以通过向进度条控制窗口发送消息来在状态之间切换。wParam
参数应该PBST_NORMAL
是、PBST_PAUSED
或PBST_ERROR
。该lParam
参数应为 0。
对于暂停和错误状态,都会抑制脉冲动画。
要检索进度条的当前状态,请发送PBM_GETSTATE
消息。
问题不是很清楚,但听起来您以选取框模式显示进度条。“我没死,不知道要花多长时间,但正在努力”模式。通过打开 PBS_MARQUEE 样式标志启用。
您可以使用PBM_SETMARQUEE 消息控制动画。允许您完全关闭它或通过显着增加动画时间使其开始爬行。可能有点适合“暂停”模式。默认值为 30 毫秒,在 1000 毫秒时它看起来很诡异。完全冻结它不是一个选项,但没有用户会盯着它看 INT_MAX 毫秒。