请大家帮忙看看我写的进度条程序哪里出错?
程序很简单,最上面两个文本框显示进度条数值的范围,下面两个进度条,一个按照步长为1前进,第二个按照指定步长逐步前进。最下面一个按钮用来开始进度条。可是当我按下按钮什么反应都没有,请大家帮我看看哪里出了错。
定义
public:
UINT nStart; 控件变量 起始范围
public:
UINT nEnd; 控件变量 结束范围
public:
int nStep; 步长
public:
CProgressCtrl ProgressCtrl1; 进度条1控件变量
public:
CProgressCtrl ProgressCtrl2; 进度条2控件变量
public:
CString szInfo1; 静态框1文本变量
public:
CString szInfo2; 静态框2文本变量
public:
afx_msg void OnTimer(UINT nIDEvent); 计时器器的消息响应函数
public:
afx_msg void OnBnClickedButtonStartprogress(); 按钮的消息响应函数
初始化代码
this->nStart=0;
this->nEnd=1000;
this->szInfo1=L"准备开始";
this->szInfo2=L"准备开始";
this->UpdateData(false);
计时器消息响应函数
afx_msg void CProgressDemoDlg::OnTimer(UINT nIDEvent)
{
if (nIDEvent==1)
{
//获得进度条当前位置
int nCurPos1=ProgressCtrl1.GetPos();
int nCurPos2=ProgressCtrl2.GetPos();
//判断进度条是否超界
if (nCurPos1>=this->nEnd&&nCurPos2>=this->nEnd)
{
this->KillTimer(1);
}
//处理进度条
if (nCurPos1<nEnd)
{
this->ProgressCtrl1.SetPos(nCurPos1+1);
}
if (nCurPos2<nEnd)
{
this->ProgressCtrl2.StepIt();
}
//设置显示字符
this->szInfo1.Format(L"[定位方式]当前进度(nCurPos=%d,Step=1)",nCurPos1);
this->szInfo1.Format(L"[逐步方式]当前进度(nCurPos=%d,Step=%d)",nCurPos2,this->nStep);
this->UpdateData(false);
}
return afx_msg void();
}
按钮消息响应函数
void CProgressDemoDlg::OnBnClickedButtonStartprogress()
{
// TODO: 在此添加控件通知处理程序代码
this->UpdateData(true);
// 设置进度条范围
this->ProgressCtrl1.SetRange32(this->nStart,this->nEnd);
this->ProgressCtrl2.SetRange32(this->nStart,this->nEnd);
// 确定步长
nStep=(this->nEnd-this->nStart)/100;
if (nStep==0)
{
nStep=1;
}
//初始化进度条位置
this->ProgressCtrl1.SetPos(this->nStart);
this->ProgressCtrl2.SetPos(this->nStart);
//设置进度条2的步长
this->ProgressCtrl2.SetStep(this->nStep);
//设置计时器ID为1,每100ms触发一次
this->SetTimer(1,100,NULL);
}
按了按钮没反应,看了一会儿也没看问题,请大家帮我看看什么原因,是不是哪里没有UpdateData之类的还是什么别的原因?