vc++中进度条的逐渐增加

Gradual Increase in Progressbar in VC++

本文关键字:增加 vc++      更新时间:2023-10-16

我在vc++中创建了一个进度条。

但是这个进度条并没有显示逐渐增加。它在关卡中来回跳舞。

myCtrl.Create( WS_CHILD | WS_VISIBLE, CRect  (100,140,300,170), this, 1 );
myCtrl.SetRange(0,100);
myCtrl.SetStep(2);
myCtrl.SetPos(0);
for(int i=0;i<10000;i++)
{
    myCtrl.StepIt();
}

请告诉我如何显示进度条逐渐增加

你这样做,它会不停地转。

如果你知道你要走的步数,你可以使用StepIt,这样它就会到达终点。

另一个方法是使用OffsetPos。假设您将rang设置为文件的字节数,并将OffsetPos设置为已处理的字节数。由于这些预期很大,改进的解决方案可以计算百分比,并使用它,保持0-100的范围。

这里和相邻页面的文档都很好。

不是答案,只是一个提示:

  • 获取百分比[0..100]
  • 仅在必要时执行

在线程中执行如下操作:

if (round(100.0 * file.bytesLoaded / (double)file.totalBytes) > myCtrl.Getpos()) {
     myCtrl.StepIt();
     myCtrl.UpdateWindow();
}
Thread.Sleep(100);