问题遇到的现象和发生背景
MFC进度条控件不变化
问题相关代码,请勿粘贴截图
在Dlg.h文件中定义了一个定时器
#define TIME_PROC 9527
在Dlg.cpp文件中的OnInitDialog()函数添加了
//设置进度条范围
CProgressCtrl* proc = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
proc->SetRange(0, 100);
//设置一个定时器
SetTimer(TIME_PROC, 100, NULL);
给Dlg添加了WM_TIMER事件
void CdialogDlg::OnTimer(UINT_PTR nIDEvent)
{
int num;//记录进度条当前位置
int low, height;//记录进度条的最大值和最小值
CProgressCtrl* proc;
//一个程序中可能有多个定时器,根据定时器ID做出相应的操作
switch (nIDEvent) {
case TIME_PROC:
proc = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
//获取当前进度
num = proc->GetPos();
//每超出定时器时限时就+1
proc->SetPos(num++);
//先获取进度条的最小值和最大值
proc->GetRange(low, height);
//判断是否超出最大值
if (num >> height) {
//超出则让进度条重新跑
proc->SetPos(low);
}
break;
}
CDialogEx::OnTimer(nIDEvent);
}
运行结果及报错内容
但是我调试后那个进度条就一直这个样子,根本不动。我又加入了断点,发现那个获得进度条进度的值一直是0
这是为啥哦/(ㄒoㄒ)/~~