MFC基于 单文档为状态栏添加进度条
1.将CMainFrame类的头文件中的私有成员
protected: // 控件条嵌入成员
CMFCStatusBar m_wndStatusBar;
改成:public:CMFCStatusBar m_wndStatusBar;
2.添加IDS_PROGRESS标识的字符到resourc.h中,设置常量为1005,标识符的常量值不能喝其他的值意义,如下:
3.将CMainFrame源文件中指示器indicators[]中加入IDS_PROGRESS,如下:
4.在CMainFrame.ccp中添加下列图片中黑色所圈的代码:
5.在任意函数需要添加进度条处添加如下代码即可实现在状态栏显示进度条:
CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd(); //获取框架类指针
pFrame->m_wndStatusBar.EnablePaneProgressBar(2,m_Save_Buffer.size(),TRUE); //设置进度条的最大程度
// 在下面的for循环中更新进度条的当前位置
for (int i = 0; i < m_Save_Buffer.size(); i++)
{
pFrame->m_wndStatusBar.SetPaneProgress(2,i+1,TRUE);
pFrame->m_wndStatusBar.SetPaneText(1,_T("保存进度:"));
}
// 其中的m_Save_Buffer.size()为一个容器的大小,在这里将其大小设置为进度条的最大长度,其中的i为遍历该容器的索引,从0开始,因此当前位置需设为i+1,否则进度条只显示到99%,到此设置完毕,效果图如下: