《Windows编程循序渐进》——进度条

界面布局如下:

首先给GroupBox添加变量,让它能够显示进度条执行到百分之多少,当出现提示:

只需要给控件ID进行重命名即可,重命名后就可以添加变量了:

给进度条添加变量:

再手动添加两个变量:

还得给上边两个编辑框关联变量:

给Button加入代码如下:

下面给窗体添加Timer消息:

每100ms触发一次Timer消息,设置Timer消息的代码如下:

void CMFCProCtrlDlg::OnTimer(UINT_PTR nIDEvent)
{
    if (nIDEvent == 1){
        //取得当前进度
        int nCurPos1 = ProgressControl1.GetPos();
        int nCurPos2 = ProgressControl2.GetPos();
        //如果两个进度条都执行结束,就关闭计时器
        if (nCurPos1 >= nEnd){
            this->KillTimer(1);
            this->bStatus = FALSE;
        }
        //定位方式,每次进度都增加1
        if (nCurPos1 < nEnd){
            ProgressControl1.SetPos(nCurPos1 + 1);
        }
        //逐步方式,每次增加指定步长
        if (nCurPos2 < nEnd){
            ProgressControl2.StepIt();
        }
        //第一个进度条的当前信息
        this->szInfo1.Format(L"[定位方式]当前进度:%d", nCurPos1);
        this->szInfo2.Format(L"[逐步方式]当前进度:%d,步长:%d", nCurPos2,nStep);
        this->UpdateData(FALSE);
    }


    CDialogEx::OnTimer(nIDEvent);
}

运行结果:

 

posted @ 2016-07-18 22:45  _No.47  阅读(929)  评论(0)    收藏  举报