1.进度条控件的常用方法
首先给控件添加一个变量
在dlg初始化函数钟进行方法的实现
//进度条显示区域
//设置进度条的范围
m_progress.SetRange(0, 100);
//设置进度条当前的位置
m_progress.SetPos(75);
//获取当前进度条的位置
progress_pos = m_progress.GetPos();
//设置进度条每次步进的长度
m_progress.SetStep(1);
2.利用定时器让进度条控件动起来
(1)为对话框类添加 WM_TIMER 定时器消息的响应函数;
(2)在响应函数中添加:m_ProgressCtrl.StepIt(); 步进;
void CMFC_Test1Dlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (progress_pos == 100){
//关闭定时器
KillTimer(1);
//如果走满了就不要走了
}
else {
//进度条走一个单位
m_progress.StepIt();
progress_pos += 1;
CString cstr;
//转换为字符串
cstr.Format(_T("%d"), progress_pos);
cstr.AppendChar('%');
//设置静态文本框显示的内容
SetDlgItemText(IDC_STATIC_PROGRESS, cstr);
}
CDialog::OnTimer(nIDEvent);
}
(3)在对话框的初始化函数中启动定时器:SetTimer(1, 500, NULL); //500ms 执行一次
//启动时钟
//UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse,
//void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD));
SetTimer(1,200,NULL);
效果如下所示: