- MFC 教程
- MFC - 首页
- MFC - 概述
- MFC - 环境设置
- MFC - VC++ 项目
- MFC - 入门指南
- MFC - Windows 基础
- MFC - 对话框
- MFC - Windows 资源
- MFC - 属性表
- MFC - Windows 布局
- MFC - 控件管理
- MFC - Windows 控件
- MFC - 消息与事件
- MFC - ActiveX 控件
- MFC - 文件系统
- MFC - 标准 I/O
- MFC - 文档视图
- MFC - 字符串
- MFC - CArray
- MFC - 链表
- MFC - 数据库类
- MFC - 序列化
- MFC - 多线程
- MFC - Internet 编程
- MFC - GDI
- MFC - 库
- MFC 有用资源
- MFC - 快速指南
- MFC - 有用资源
- MFC - 讨论
MFC - 进度控制
进度条控件是应用程序用来指示冗长操作进度的窗口。它由一个矩形组成,随着操作的进行,该矩形从左到右逐渐填充系统高亮颜色。它由CProgressCtrl类表示。
以下是 CProgressCtrl 类中的方法列表:
序号 | 名称及描述 |
---|---|
1 | Create 创建进度条控件并将其附加到 CProgressCtrl 对象。 |
2 | CreateEx 使用指定的 Windows 扩展样式创建进度控件并将其附加到 CProgressCtrl 对象。 |
3 | GetBarColor 获取当前进度条控件的进度指示条颜色。 |
4 | GetBkColor 获取当前进度条的背景颜色。 |
5 | GetPos 获取进度条的当前位置。 |
6 | GetRange 获取进度条控件范围的下限和上限。 |
7 | GetState 获取当前进度条控件的状态。 |
8 | GetStep 检索当前进度条控件的进度条的步长增量。 |
9 | OffsetPos 将进度条控件的当前位置向前移动指定的增量,并重新绘制该条以反映新的位置。 |
10 | SetBarColor 设置当前进度条控件中进度指示条的颜色。 |
11 | SetBkColor 设置进度条的背景颜色。 |
12 | SetMarquee 为当前进度条控件打开或关闭跑马灯模式。 |
13 | SetPos 设置进度条控件的当前位置,并重新绘制该条以反映新的位置。 |
14 | SetRange 设置进度条控件的最小和最大范围,并重新绘制该条以反映新的范围。 |
15 | SetState 设置当前进度条控件的状态。 |
16 | SetStep 指定进度条控件的步长增量。 |
17 | StepIt 将进度条控件的当前位置向前移动步长增量(参见 SetStep),并重新绘制该条以反映新的位置。 |
让我们创建一个新的 MFC 应用程序。
步骤 1 - 将文本控件的 ID 更改为,并删除标题。
步骤 2 - 从工具箱中拖动进度控件。
步骤 3 - 为静态文本控件添加值变量。
步骤 4 - 为进度控件添加控件变量。
步骤 5 - 以下是 OnInitDialog() 中的实现
BOOL CMFCProgressControlDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu -> AppendMenu(MF_SEPARATOR); pSysMenu -> AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here m_progCtrl.SetRange(0,100); for (int i = 0; i <= 100; i++) { m_progCtrl.SetPos(i); } return TRUE; // return TRUE unless you set the focus to a control }
步骤 6 - 当上述代码编译并执行时,您将看到以下输出。