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

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日

悬赏问题

  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签)
  • ¥50 sft下载大文阻塞卡死
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失
  • ¥15 springboot+vue 集成keycloak sso到阿里云
  • ¥15 win7系统进入桌面过一秒后突然黑屏
  • ¥30 backtrader对于期货交易的现金和资产计算的问题