上位机VC MFC弹出窗口式带文字提示进度条实现
上位机VC MFC弹出窗口式带文字提示进度条实现
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
在我们安装VC60或操作其他软件时,时常会看到弹出进度条窗口的现象。当前例程实现弹出进度条功能,可以设置进度条提示文本,模态,非模态显示,取消等操作。功能从CWnd派生,集成为CProgressWnd类。只要包含类头文件就可快速使用。效果如图,点击<弹出标准进度条><弹出平滑进度条><弹出模态进度条>可实现三种不同效果进度条窗口;
集成类的使用与MFC自带的CProgressCtrl类似,只要实例化一个对象,调用SetRange(0,TEST_RANGE);设置其进度范围后,就可调用StepIt进行进度的滚动显示; SetText成员函数可以设置进度条窗口上的提示文本;
其他成员函数可顾名思义,进行调用定制
1.新建基于对话框的应用程序,复制例程根目录PROGRESSWND.CPP, PROGRESSWND.H两文件到自己工程根目录,并添加到工程,进而使用CProgressWnd集成类; 2.包含类的头文件#include "ProgressWnd.h" #define TEST_RANGE 10000//测试用进度条范围
拖拽三个对话框控件<弹出标准进度条><弹出平滑进度条><弹出模态进度条>关联点击函数实现三种效果进度条。
- void CGkbc8Dlg::OnButton1() //标准式进度条
- {
- CProgressWnd wndProgress(this, "Progress");
- wndProgress.SetRange(0,TEST_RANGE);
- wndProgress.SetText("This is a progress window...\n\n" "Try dragging it around or hitting Cancel.");
- for (int i = 0; i < TEST_RANGE; i++) {
- wndProgress.StepIt();
- wndProgress.PeekAndPump();
- if (wndProgress.Cancelled()) {
- MessageBox("Progress Cancelled");
- break;
- }
- }
- }
复制代码- void CGkbc8Dlg::OnButton2()
- {
- CProgressWnd wndProgress(this, "Progress", TRUE);
- wndProgress.SetRange(0,TEST_RANGE);
- wndProgress.SetText("This is a progress window...\n\n"
- "Try dragging it around or hitting Cancel.");
- for (int i = 0; i < TEST_RANGE; i++) {
- wndProgress.StepIt();
- wndProgress.PeekAndPump();
- if (wndProgress.Cancelled()) {
- MessageBox("Progress Cancelled");
- break;
- }
- }
- }
复制代码
- void CGkbc8Dlg::OnButton3()
- {
- CProgressWnd wndProgress(this, "Progress");
- wndProgress.GoModal();
- wndProgress.SetRange(0,TEST_RANGE);
- wndProgress.SetText("This is a progress window...\n\n"
- "Try dragging it around, hitting Cancel or pressing ESC.");
- for (int i = 0; i < TEST_RANGE; i++) {
- wndProgress.StepIt();
- wndProgress.PeekAndPump();
- if (wndProgress.Cancelled()) {
- MessageBox("Progress Cancelled");
- break;
- }
- }
- }
复制代码
|