首页 > 代码库 > CProgressCtrl进度条控

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();

}