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

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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题