首页 > 代码库 > mfc CProgressCtrl

mfc CProgressCtrl

CProgressCtrl常用属性
CProgressCtrl类常用成员函数
CProgressCtrl代码示例

一、CProgressCtrl控件属性    
   当我们在处理大程序时,常常需要耗很长时间(比如搜索内存,复制大文件),为了不让用户错误的认为系统已经死机,我们要给程序添加进度条。
  vertical :是否垂直显示。
  smooth :平滑过度,不显示进度方块。可以显示更细致。

二、CProgressCtrl类常用成员函数 
  
SetRange
void SetRange( short nLower, short nUpper );
  为进度条控件设置范围的最小值和最大值,并重画进度条来反映新的范围,默认为0~100,若设置32位范围,用下面的函数。 -0x8fff~0x7FFF
SetRange32
void SetRange32( int nLower, int nUpper); 
为进度条控件设置范围的最小值和最大值,并重画进度条来反映新的范围 
GetRange
void GetRange( int&nLower, int&nUpper );
获取进度条控件范围的下限和上限 
GetPos
获取进度条的当前位置
SetPos
设置进度条的当前位置,并重画进度条来反映新的位置
OffsetPos
在原位置上增加一段数值,并重画进度条来反映新的位置
SetStep
设置进度条前进的步长,返回原来步长。配合StepIt使用
在进度条上会以百分比的形式显示出来 步长/(最大值-最小值)


三、 代码示例


void CDialog_Progress_Test::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    //0..100
    CProgressCtrl* prgctl=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
    prgctl->SetPos(50);

}

void CDialog_Progress_Test::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知处理程序代码

    CProgressCtrl* prgctl=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);

    prgctl->SetRange32(0,300);
}

void CDialog_Progress_Test::OnBnClickedButton3()
{
    // TODO: 在此添加控件通知处理程序代码
    CProgressCtrl* prgctl=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
    static int i=0;
    prgctl->SetPos(i);
    i+=10;
    if (i>=300)
    {
        i=0;
    }
}

void CDialog_Progress_Test::OnBnClickedButton4()
{
    // TODO: 在此添加控件通知处理程序代码
        CProgressCtrl* prgctl=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
        prgctl->OffsetPos(10);
}

void CDialog_Progress_Test::OnBnClickedButton5()
{
    // TODO: 在此添加控件通知处理程序代码
 CProgressCtrl* prgctl=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
 prgctl->SetStep(3);
}

void CDialog_Progress_Test::OnBnClickedButton6()
{
    // TODO: 在此添加控件通知处理程序代码
    CProgressCtrl* prgctl=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
    prgctl->StepIt();
}

 

mfc CProgressCtrl