M FC 进度条编程控制 1. 进度条的主要功能 进度条控制(Progress Control)主要用来进行数据读写、文件拷贝和磁盘格式等操作时的工作进度提示情况,如安装程序等,伴随工作进度的进展,进度条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。 进度条控制在 MFC 类库中的封装类为 CProgressCtrl,通常仅作为输出类控制,所以其操作主要是设置进度条的范围和当前位置,并不断地更新当前位置。进度条的范围用来表示整个操作过程的时间长度,当前位置表示完成情况的当前时刻。SetRange()函数用来设置范围,初始范围为 0-100, SetPos()函数用来设置当前位置,初始值为 0,SetStep()函数用来设置步长,初始步长为 10,StepIt()函数用来按照当前步长更新位置,OffsetPos()函数用来直接将当前位置移动一段距离。如果范围或位置发生变化,那么进度条将自动重绘进度区域来及时反映当前工作的进展情况。 进度条的对象结构 进度条控制的建立方法 CProgressCtrl &ProgressCtrl 建立进度条控制对象结构 Create 建立进度条控制对象并绑定对象 进度条控制类 CprogressCtrl::Create 的调用格式如下: BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ); 其中参数dwStyle 用来确定进度条控制的控制风格;参数rect 用来确定进度条控制的大小和位置;参数pParentWnd 用来确定进度条父窗口指针;参数nID 用来确定进度条控制的控制符 ID 值。 2 进度条控制的类属性 进度条控制的类属性包括设置进度条最大最小控制范围 SetRange、设置进度条当前位置 SetPos、设置进度条当前位置偏移值 OffsetPos 和设置进度条控制增量值 SetStep。 3 进度条控制的操作方法 进度条控制的操作方法主要是使进度条控制并重绘进度条的StepIt 函数。 进度条控制的应用技巧示例 1、利用应用程序向导 AppWizard 生成基于对象框的应用程序 CProgDlg; 2、在对话框中设置进度条和静态文本控制,其 ID 分别为 IDC_PROG 和 IDC_PERCENT; 在对话框初始代码中增加控制的范围和位置: 在 ProgDlg.h 中设置两个数据成员,用来表示进度条的最大值和步长: //ProgDlg.h class CProgDlg:public Cdialog { ......//其它代码 public: int m_nMax,m_nStep; ...... //其它代码 } (2)在ProgDlg.cpp 中设置初始状态 BOOL CProgDlg::OnInitDialog() { Cdialog::OnIn...