zoukankan      html  css  js  c++  java
  • 进度条的使用 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

  • 相关阅读:
    UVA 1386 Cellular Automaton
    ZOJ 3331 Process the Tasks
    CodeForces 650B Image Preview
    CodeForces 650A Watchmen
    CodeForces 651B Beautiful Paintings
    CodeForces 651A Joysticks
    HUST 1601 Shepherd
    HUST 1602 Substring
    HUST 1600 Lucky Numbers
    POJ 3991 Seinfeld
  • 原文地址:https://www.cnblogs.com/chenzuoyou/p/3167120.html
Copyright © 2011-2022 走看看