创建一个不显示实际进度的循环滚动进度条,类似于Windows XP启动界面的进度条
新建一个MFC项目TestProgress,编辑界面,添加一个进度条,两个按钮,实现点击start进度条循环滚动,点击stop进度条消失
右键进度条,属性,将Marquee设置为true
右击进度条,添加变量。设置变量名字m_progress
在CTestProgressDlg::OnInitDialog中添加以下语句,设置滚动速度和Marquee显示
// TODO : 在此添加额外的初始化代码
m_progress.SetMarquee(true,30);
右键单击start按钮,添加事件处理程序,选择消息类型BN_CLICKED,点击添加编辑
之后在CTestProgressDlg::OnBnClickedButton1中编辑以下代码控制进度条的可见性
void CTestProgressDlg::OnBnClickedButton1(){
m_progress.ShowWindow(true);
}
同样的方法为stop按钮添加事件处理
void CTestProgressDlg::OnBnClickedButton2(){
m_progress.ShowWindow(false);
}
效果:
对于进度条,使用以下方法让进度条设置Marquee样式
m_progress.ModifyStyle(NULL,PBS_MARQUEE);
ModifyStyle的第一个参数是移除的样式,第二个参数是添加的样式。
而使用以下方法会让进度条恢复正常属性
m_progress.ModifyStyle(PBS_MARQUEE,NULL);
之后可以使用代码设置正常的进度状态显示
m_progress.SetRange(0, 100);
m_progress.SetPos(60);