vc6.0里mfc进度条如何使用

author author     2023-05-02     572

关键词:

参考技术A 演练CProgress
7.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值。
7.2
进度条控制的类属性
进度条控制的类属性包括设置进度条最大最小控制范围SetRange、设置进度条当前位置
SetPos、设置进度条当前位置偏移值OffsetPos和设置进度条控制增量值SetStep。
7.3
进度条控制的操作方法
进度条控制的操作方法主要是使进度条控制并重绘进度条的StepIt函数。
进度条控制的应用技巧示例
1、利用应用程序向导AppWizard生成基于对象框的应用程序CProgDlg;
2、在对话框中设置进度条和静态文本控制,其ID分别为IDC_PROG和IDCPERCENT;
在对话框初始代码中增加控制的范围和位置:
在ProgDlg.h中设置两个数据成员,用来表示进度条的最大值和步长:
//ProgDlg.h
class
CProgDlg:public
Cdialog

......//其它代码
public:
int
m_nMax,m_nStep;
......
//其它代码

(2)在ProgDlg.cpp中设置初始状态
BOOL
CProgDlg::OnInitDialog()

Cdialog::OnInitDialog();
......//其它代码
//TODO:Add
extra
initialization
here
CProgressCtrl
*pProgCtrl=(CProgressCtrl*)GetDlgItem(IDC_PROG);
pProgCtrl->SetRange(0,200);//设置进度条范围
......//其它代码
m_nMax=200;
m_nStep=10;
SetTimer(1,1000,NULL);//设置进度条更新时钟
return
TRUE;

(3)完善WM_TIMER消息处理,使进度条按照当前步长进行更新,同时完成进度条的百分比显示:
void
CProgDlg::OnTimer(UINT
nIDEvent)

//TODO:Add
your
message
handler
CProgressCtrl
*pProgCtrl=(CProgressCtrl*)GetDlgItem(IDC_PROG);
int
nPrePos=pProgCtrl->StepIt();//取得更新前位置
char
test[10];
int
nPercent=(int)(((nPrePos+m_nStep)/m_nMax*100+0.5);
wsprintf(test,%d%%,nPercent);
GetDlgItem(IDC_PERCENT)->SetWindowText(text);
Cdialog::OnTimer(nIDEvent);

如何在加载时显示进度条,使用ajax

】如何在加载时显示进度条,使用ajax【英文标题】:Howtoshowprogressbarwhileloading,usingajax【发布时间】:2013-12-0409:21:58【问题描述】:我有一个下拉框。当用户从下拉框中选择一个值时,它会执行查询以从数据库中检索数据,并使... 查看详情

在 MFC 中不断增加进度条

】在MFC中不断增加进度条【英文标题】:IncrementingProgressbarcontinouslyinMFC【发布时间】:2014-11-1313:17:29【问题描述】:完成执行在我的应用程序中,我有一个模式对话框。单击对话框中的按钮时,会弹出带有进度条的无模型对话框... 查看详情

在vc6.0做的mfc程序,如何在bs中用浏览器打开

参考技术A浏览器可以加载ActiveX控件, 参考技术B做成ActiveX控件或ActiveX文档 参考技术C一楼正确 参考技术D做成ActiveX控件本回答被提问者采纳 查看详情

mfc求一个工具栏插入进度条的方法

MFC求一个工具栏插入进度条的方法工具栏类使用CMFCToolBar参考技术A使用普通工具栏就可以,在工具条中插入分隔条,由于分隔条是一个窗口,因此可以在分隔条上面创建进度条。追问具体说说呗,追答看一看这篇文章:http://hi.baid... 查看详情

当 shellexecute 命令在 MFC 中执行批处理文件时显示进度条

】当shellexecute命令在MFC中执行批处理文件时显示进度条【英文标题】:ShowprogressbarwhiletheshellexecutecommandexecutesbatchfileinMFC【发布时间】:2013-03-2611:17:36【问题描述】:我正在做的是通过shellexecute命令执行一个批处理文件,现在我... 查看详情

无法更改 mfc 进度条颜色

】无法更改mfc进度条颜色【英文标题】:Couldn\'tabletochangemfcprogressbarcolor【发布时间】:2014-09-2613:19:29【问题描述】:我无法在我的对话框中将进度条颜色更改为红色。m_progress.SetBarColor(RGB(255,0,0));m_progress.SendMessage(PBM_SETBARCOLOR,0,(L... 查看详情

关于mfc响应菜单和使用菜单的方法

...还是直接写在CReadview里面...菜单按钮和子按钮的ID也知道如何获取;只是不知道如何使用,是通过侦听,返回truefalse来判断是否选中,还是什么。还请指点迷津,我用的VC6.0和按钮一样呀,不过你要在对话框的属性设置中选中你... 查看详情

从 .NET C# DLL 更新 MFC 对话框中的进度条

】从.NETC#DLL更新MFC对话框中的进度条【英文标题】:UpdatingprogressbarinMFCdialogfrom.NETC#DLL【发布时间】:2019-05-0704:29:11【问题描述】:我已经看到了这个article,但我需要反过来,发现它很混乱。我有一个C#DLL,它正在执行一项使用... 查看详情

mfc 11 应用程序旧式按钮和进度条

】mfc11应用程序旧式按钮和进度条【英文标题】:mfc11applicationoldstylebuttonsandprogressbars【发布时间】:2013-10-1607:15:59【问题描述】:我刚刚将一个vs2010mfc应用程序更新到vs2012,我遇到了新的闪亮样式窗口按钮和进度条没有出现的问... 查看详情

使用mfc操作excel文件

一、加载1、在VC6.0里创建一个MFC工程2、打开MFCClassWizard窗口(查看—>建立类向导),选择Automation,单击AddClass按钮,选择Fromatypelibrary...,弹出文件选择对话框,之后定位到C:ProgramFilesMicrosoftOfficeOFFICE11EXCEL.EXE,在生成类中添加所... 查看详情

Delphi:如何使用进度条显示 CreateProcess 的进度?

】Delphi:如何使用进度条显示CreateProcess的进度?【英文标题】:Delphi:HowtouseaprogressbartodisplaytheprogressofaCreateProcess?【发布时间】:2014-08-0818:24:23【问题描述】:我有一个Startandwait函数,它创建一个进程并等待结束。如何创建进度... 查看详情

vc6.0mfc窗口问题

...像在网页中的导航条一样。现在窗口切换问题不能解决,如何在用户点击一个按钮时,将原来的窗口隐藏,并且出现新窗口,可能说的有点模糊,就像360吧,那种窗口切换是怎样做到的?2.继续第一问,在打开一个窗口时,我想... 查看详情

如何使用 swift 显示带有进度条的 AVAudioPlayer?

】如何使用swift显示带有进度条的AVAudioPlayer?【英文标题】:HowtoAVAudioPlayerwithprogressbarshowusingswift?【发布时间】:2019-01-2413:26:17【问题描述】:我正在使用AVAudioPlayer播放歌曲。我需要一个进度条来显示歌曲的进度。我的问题是... 查看详情

如何使用 savefiledialog 在进度条上显示进度?

】如何使用savefiledialog在进度条上显示进度?【英文标题】:Howtodisplayprogressonaprogressbarusingsavefiledialog?【发布时间】:2017-07-2418:03:38【问题描述】:我想在Windows窗体中使用“SaveFileDialog”和“ProgressBar”显示保存文件的进度。保... 查看详情

如何使用进度条 onclick 事件

】如何使用进度条onclick事件【英文标题】:Howtouseprogressbaronclickevent【发布时间】:2016-04-2118:37:08【问题描述】:您好,我正在尝试显示一个表单,显示在此onclick事件中执行的查询的进度:PrivateSubCommand125_Click()\'***************Statem... 查看详情

如何使用仪表式进度条?

】如何使用仪表式进度条?【英文标题】:HowcanIuseameter-styleprogressbar?【发布时间】:2011-02-0921:52:54【问题描述】:在Vista/7中,WindowsExplorershell窗口使用一种特殊的静态进度条来显示硬盘空间。使用默认样式时,此栏为蓝色且无... 查看详情

如何使用 WinForms 进度条?

】如何使用WinForms进度条?【英文标题】:HowtouseWinFormsprogressbar?【发布时间】:2012-08-2101:12:22【问题描述】:我想显示在外部库中执行的计算进度。例如,如果我有一些计算方法,并且我想在我的Form类中将其用于100000个值,我... 查看详情

如何使用 GWT 实现进度条?

】如何使用GWT实现进度条?【英文标题】:HowtoImplementprogressbarwithGWT?【发布时间】:2011-08-0117:33:35【问题描述】:在GWT应用程序中,我有一个运行服务器端并使用rpc(GWT调度程序)调用的长进程,我希望将反馈作为显示消息和总... 查看详情