MFC多线程使用进度条

MFC多线程使用进度条

为什么使用多线程

因为在创建进度条显示进度时,出现了进度条无法显示当前程序运行到的进度问题,通过多方查询信息,了解到应当使用线程去完成进度条的调用,才能起到效果。且使用多线程不会使界面锁死,界面可以同时进行其他操作。

应该如何创建进度条?

  1. 在VS的工具栏中将Progress Control拉到界面上
    在这里插入图片描述

  2. 控件属性的设置
    MFC多线程使用进度条_第1张图片
    这个属性是将控件的显示进度方式是一点点连续出现的,这样显示速度会更快,从用户角度出发,就不会出现卡顿和锁死,如果不改的话,其显示方式会是一格格的显示,从用户角度出发,会显得整个界面死掉了。

  3. 关于代码的书写
    看了网上很多例子,也尝试一些例子去实现,但是最后都是一次次失败的尝试。求助了一些大佬,才把自己的程序给跑出来。
    **·**关于头文件(.h)的设置
    在这里插入图片描述在这里插入图片描述
    **·**cpp文件的编写
    你的逻辑+你在头文件中定义的变量
    m_Progress.SetRange(0, 100);

    double prent =0;
    prent = ((double)proPos / (double)fileLen) * 100 ;
    m_Progress.SetPos(prent);
    CString str;
    str.Format(_T(“%.2f%%”), prent);
    GetDlgItem(IDC_EDIT_PRECENT)->SetWindowText(str);
    //UpdateData(FALSE);
    //UpdateWindow();
    return FALSE;

  4. 引用
    设置好你的进度条位置和整个文件长度,再引用你设置的线程函数ThreadSpeed()就好了。

  5. 实现效果
    在这里插入图片描述

你可能感兴趣的:(mfc,c++)