(1)进度条控件:IDC_PROGRESS 变量m_progress
按钮 IDC_BTN_START
按钮事件及WM_TIMER消息:
void CProgressDemoDlg::OnBnClickedBtnStart()
{
// TODO: 在此添加控件通知处理程序代码
//开启定时器
SetTimer(1,100,NULL);
//禁用开始按钮,防止重复按下
GetDlgItem(IDC_BTN_START)->EnableWindow(FALSE);
}
void CProgressDemoDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
int nMax,nMin,nPos;
//取得进度条控件的范围
m_progress.GetRange(nMin,nMax);
//获取当前进度值
nPos=m_progress.GetPos();
//增加进度值
nPos++;
//如果达到上限,结束定时器,恢复控件原状
if(nPos>=nMax)
{
KillTimer(1);
nPos=0;
GetDlgItem(IDC_BTN_START)->EnableWindow();
}
//更新进度值
m_progress.SetPos(nPos);
CDialogEx::OnTimer(nIDEvent);
}