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