效果展示-------
(由于gif的录制问题,进度显示不连贯,实际上效果很不错的)
程序实例-------
1、打开Visual Studio(此文以VS2010做例子),新建一个基于对话框的MFC程序,命名为Progress。
2、向对话框中拖入一个Progress控件、一个Check Box,调整好控件和对话框的大小。
3、设置ID:进度条IDC_PROGRESS、复选框IDC_CHECK,注意大小写
4、更改进度条的属性:Marquee为True。
5、为进度条添加CProgressCtrl变量:m_progress
6、在CProressDlg的OnInitDialog函数中添加代码:
m_progress.SetMarquee(TRUE,30); //设置进度条的进度段长度
((CButton*)GetDlgItem(IDC_CHECK))->SetCheck(1); //默认复选框为选中状态
7、为复选框添加按下处理程序OnBnClickedCheck,函数代码如下:
void CProgressDlg::OnBnClickedCheck()
{
// TODO: 在此添加控件通知处理程序代码
BOOL bChecked = ((CButton*)GetDlgItem(IDC_CHECK))->GetCheck(); //把复选框选中状态传递给bChecked
if(bChecked) //如果复选框被选中
m_progress.ModifyStyle(NULL,WS_VISIBLE); //使进度条可见
else //如果复选框没有被选中
m_progress.ModifyStyle(WS_VISIBLE,NULL); //使进度条不可见
Invalidate(); //重绘窗口
}
8、现在可以生成应用程序了。
9、启动调试,就可以看到效果。默认进度条显示,复选框选中,取消复选框选择即可隐藏进度条;再次选中即可出现进度条。
工程文件及源代码下载:https://download.csdn.net/download/baidu_38494049/10700023