-2

我在 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();
}

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

4

2 回答 2

0

你这样做的方式,它会转来转去。

如果您知道要走的步数,您就可以使用 StepIt,这样它就会走到尽头。

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

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

于 2013-06-20T12:55:06.780 回答
0

不是答案,只是线索:

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

在线程中执行以下操作:

if (round(100.0 * file.bytesLoaded / (double)file.totalBytes) > myCtrl.Getpos()) {
     myCtrl.StepIt();
     myCtrl.UpdateWindow();
}
Thread.Sleep(100);
于 2013-06-20T12:53:37.247 回答