使用PBM_SETPOS设置位置时进度条滞后
ProgressBar lag when setting position with PBM_SETPOS
我有一个简单的c++/MFC对话框,其中有一个进度条控件。我使用PBM_SETPOS消息或MFC的:
设置其位置。//CProgressCtrl myCtrl;
myCtrl.SetPos(position);
它工作得很好,除了当我需要这个职位快速增长时,它似乎落后了。
有办法消除这个延迟吗?
p。我在旧版本的Windows(具有经典的视觉样式)上尝试了我的应用程序,并且没有出现这种延迟。
延迟是在启用视觉样式为用户提供更流畅的动画体验时设计的。这是一个鲜为人知但众所周知的问题。你不能消除延迟,但你可以绕开它。滞后只发生在增加位置时,而不是减少位置时。呼叫SetPos(position+1)
,然后呼叫SetPos(position)
,棒子会立即跳跃。棘手的部分出现在最后。当你想将位置设置为最大值时,你必须先将最大值增加+1,然后设置所需位置+1,然后设置实际位置,最后恢复原始最大值。这将允许进度条填充整个进度条。
int lower, upper;
myCtrl.GetRange(lower, upper);
if (position >= upper)
{
myCtrl.SetRange(lower, upper+1);
myCtrl.SetPos(upper+1);
myCtrl.SetPos(upper);
myCtrl.SetRange(lower, upper);
}
else
{
myCtrl.SetPos(position+1);
myCtrl.SetPos(position);
}
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- 如何在特定位置追加 json 文件
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 使用PBM_SETPOS设置位置时进度条滞后