VC ++中Progressbar的逐步增加

时间:2013-06-20 12:38:28

标签: c++ visual-studio visual-c++ visual-studio-2012 progress-bar

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

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

2 个答案:

答案 0 :(得分:0)

不是答案,只是领导:

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

在一个线程中做类似的事情:

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

答案 1 :(得分:0)

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

如果您知道将要采取的步骤数量,则使用StepIt,因此它将在结束时使用它们。

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

好文档here和相邻页面。