一、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使用 在进度条上会以百分比的形式显示出来步长/(最大值-最小值) |
三、控件使用
方法一:用GetDlgItem的指针方式
CProgressCtrl* prgctl=(CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
prgctl->SetPos(50);//位置
prgctl->SetRange32(0,300);//范围
/******************三种方法增加进度**********************/
//法一:使用SetPos增加进度
static int i=0;
prgctl->SetPos(i);
i+=10;
if (i>=300)
{i=0;
}
//法二:使用OffsetPos增加进度
prgctl->OffsetPos(10);
//法三:使用SetStep增加进度
prgctl->SetStep(3);//设置增量
prgctl->StepIt();
方法二:控件类型的变量
CProgressCtrl m_Pro;