• 进度条的使用 Progress控件


    MFC编程实例二:进度条的使用  

    2011-03-22 09:09:09|  分类: C++(C语言) |  标签:进度  nlower  nupper  添加  mfc  |字号 订阅

     
     本人用的可以的
     
     

    BOOL CEx040105eDlg::OnInitDialog() {  

    m_progress.SetRange( 0 ,100 );//设置进度的下限和上限,默认值是0和100。
    m_progress.SetStep(5);//设置StepIt一次移动多少进度,默认值是10。  m_progress.SetPos(0);//设置进度条的初始进度。

    m_progress.SetPos(0); //设置当前进度条位置;

     }  

    实现函数:

    void SndMESSge()

    {

    for( int i = 0; i <100/5; i ++)
    {
    Sleep( 100 );
    m_progress.StepIt();//初始化时设置了每次移动5度,总共移动100/5 次;
    }

     }
     
    ********************************************************************
    以上是我试过的,很简单的
    ********************************************************************
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    (以下蓝色字体为手动添加的代码)

    (1)   创建一个基于对话框的应用程序。

    (2)   在对话框界面添加一个文本框、一个进度条控件(Progress控件)和一个按钮。

    (3)   为Progress控件添加一个变量m_ctrlProgress,文本框添加一个变量m_strText。

    (4)   在初始化函数中添加如下代码

    BOOL CBbbDlg::OnInitDialog()

    {

           CDialog::OnInitDialog();

    …………

    // TODO: Add extra initialization here

           SetDlgItemText(IDC_EDIT1,_T("0%"));

           //设置进度条的范围

           m_ctrlProgress.SetRange(0,100);

           //设置进度条的每一步的增量

           m_ctrlProgress.SetStep(10);

           //设置进度条的当前位置

           m_ctrlProgress.SetPos(0);

           return TRUE;  // return TRUE  unless you set the focus to a control

    }

    (5)   双击按钮,添加如下代码:

    void CBbbDlg::OnButton1()

    {

           // TODO: Add your control notification handler code here

           UpdateData(false);

           //获取进度条的位置范围的最大值和最小值

           int nLower=0;

           int nUpper=0;

           m_ctrlProgress.GetRange(nLower,nUpper);

          

           if(m_ctrlProgress.GetPos()==nUpper){

                  m_ctrlProgress.SetPos(nLower);

           }

           //用每一步的增量来增加进度条的当前位置

           m_ctrlProgress.StepIt();

          

           //获取进度条的当前位置

           int nPos=(m_ctrlProgress.GetPos()-nLower)*100/(nUpper-nLower);

           CString s;

           s.Format("%d",nPos);

           m_strText=s+"%";

           UpdateData(false);

           }

    运行结果:

    (单击测试按钮进度条位置前进一步,要实现自动前进,需要设置定时器,本文暂时不介绍定时器的运用)

    MFC编程实例二:进度条的使用 - 小桂 - 桂文永的博客
     
     我自己做的
    for{

    int n =(int)wParam;
    int ncout = ( int )m_arraySendinfo.GetCount();
    if ( m_bInitProgess == FALSE )
    {
    m_bInitProgess = TRUE;
    m_Progreess.SetRange(0, ncout );//设置范围
    m_Progreess.SetPos(0);//设置位置
    m_Progreess.ShowWindow( SW_SHOW );
    }

    int nPos = 0;
    int nPOS = m_Progreess.SetPos( ++nPos );
    m_Progreess.SetPos( nPOS );
    m_Progreess.SetStep( nPos );
    m_Progreess.StepIt();
    return 0;

    }

    或者
     

    int n =(int)wParam;
    int ncout = ( int )m_arraySendinfo.GetCount();

    m_Progreess.SetRange(0, ncout );//设置范围
    m_Progreess.SetPos(0);//设置位置

    for(int i = 0 ; i <ncout  ; i ++ )

    {

    int nPos = 0;
    int nPOS = m_Progreess.SetPos( ++nPos );
    m_Progreess.SetPos( nPOS );
    m_Progreess.SetStep( nPos );
    m_Progreess.StepIt();
    return 0;

    }

    参考文献:曲扬,Visual C++实效编程280例,人民邮电出版社,2009.3

  • 相关阅读:
    使用Lua编写Wireshark插件解析KCP UDP包,解析视频RTP包
    开源自己用python封装的一个Windows GUI(UI Automation)自动化工具,支持MFC,Windows Forms,WPF,Metro,Qt
    2019 WebRtc AudioMixer混音流程
    记录一次定位视频通话 音视频卡顿的原因分析过程。
    C++标准库里自带的数值类型和字符串互相转换函数
    C++ raw string literal
    使用multiprocessing解决PyMuPDF不支持多线程加载导致的界面卡死无响应问题,及一个PyQt5实现的简易PDF阅读器例子
    使用ctypes调用系统C API函数需要注意的问题,函数参数中有指针或结构体的情况下最好不要修改argtypes
    使用python uiautomation从钉钉网页版提取公司所有联系人信息
    使用python UIAutomation从QQ2017(v8.9)群界面获取所有群成员详细资料,
  • 原文地址:https://www.cnblogs.com/chenzuoyou/p/3167120.html
Copyright © 2020-2023  润新知