MFC创建处理中进度条,循环滚动进度条的方法

⌚Time: 2022-06-01 22:31:40

👨‍💻Author: Jack Ge

创建一个不显示实际进度的循环滚动进度条,类似于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);