霸道小明 2022-07-08 21:28 采纳率: 50%
浏览 28
已结题

MFC进度条控件不变化

问题遇到的现象和发生背景

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

img

img


这是为啥哦/(ㄒoㄒ)/~~

  • 写回答

1条回答 默认 最新

  • 五一编程 2022-07-08 21:34
    关注
    
    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
            num++;
            proc->SetPos(num);
    
            //先获取进度条的最小值和最大值
    
            proc->GetRange(low, height);
    
            //判断是否超出最大值
    
            if (num >> height) {
    
                //超出则让进度条重新跑
    
                proc->SetPos(low);
    
            }
    
            break;
    
     
    
        }
    
        CDialogEx::OnTimer(nIDEvent);
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月16日
  • 已采纳回答 7月8日
  • 创建了问题 7月8日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效