本文主要介绍:利用ProgressWnd.h和ProgressWnd.cpp,在MFC或加有MFC头文件的工程中添加进度条。
说明:
ProgressWnd.h和ProgressWnd.cpp下载地址: http://download.csdn.net/detail/hong__fang/8424747
一、MFC初始化
1.如果在MFC中添加,工程运行时,MFC会自动初始化;如果是添加MFC头文件的工程,在主函数前,要进行MFC初始化,初始化程序如下,类似程序也可:
//MFC初始化,如果运行错误,就添加MFC初始化,没有的话,说明已经初始化 if(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)) { _tprintf(_T("错误: MFC 初始化失败\n")); }2.添加字符串常量
在工程 资源视图->String Table->String Table 中添加两个字符串常量:
IDS_PRO 进度条
IDS_CANCEL 取消
如图:
二、进度条显示程序
注:
<1>把进度条文件ProgressWnd.h和ProgressWnd.cpp,拷贝到工程目录下;
<3>把ProgressWnd.h和ProgressWnd.cpp分别添加到工程头文件和源文件;
<3>在要显示进度条的文件,添加进度条头文件 #include "ProgressWnd.h";
//初始化进度条 CString Title("标题字符串"); //设置进度条对话框标题 CProgressWnd *pro =new CProgressWnd(NULL,Title,TRUE); pro->SetStep(1); //设置步长 pro->SetWindowSize(1,300); //设置显示进度条提示信息行数和窗口大小 pro->SetRange(0,100);//设置进度条计数范围 float lpf; int ProPos; int CurrentNum;//当前进度 int SunNum; //总进度 //显示进度条 CString Text("提示信息"); pro->SetText(Text); //设置显示的提示信息 SunNum = 6553500; for(int i=0;i<6553500;i++) { CurrentNum = i; lpf=(float)(CurrentNum)/(float)(SunNum);//计算当前进度 ProPos=(int)(lpf*100); pro->PeekAndPump(); pro->SetPos(ProPos); //设置进度条显示进度数 if(pro->Cancelled())//进度条显示取消按钮 { if(AfxMessageBox("取消操作吗?",MB_OKCANCEL)==IDOK) { return ; } else pro->MakebCancelFalse(); } } //删除进度条 delete pro;三、效果展示
注:点击取消按钮,程序会终止运行,直接退出。