首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MFC 进度条使用方法[通俗易懂]

MFC 进度条使用方法[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-18 14:28:34
发布2022-09-18 14:28:34
2.7K0
举报

大家好,又见面了,我是你们的朋友全栈君。

目的:学习MFC 进度条控件的用法;

步骤:

新建一个对话框项目。添加控件“progress”“static”è改名了“进度”,添加两个BUTTON名字分别为“后退”“前进”,如下图:

为static控件添加CString类型的数据变量m_present;为progress添加control类型的数据变量m_pro

初始化进度条:右键classwinzerd,选中如下项目

Edit Code 后添加如下代码:

m_pro.SetRange(0,100);//设置进度条的显示范围

m_pro.SetPos(0);//进度条初始状态为显示零

inti,j,npos;

m_pro.GetRange(i,j);//得到进度条当前的显示的范围

npos=m_pro.GetPos();//得到进度条当前的进度

m_present.Format(“%4.0f%%”,(float)npos/(float)(j-i)*100.0);//在static控件中显示当前的进度

UpdateData(FALSE);//static控件现实当前的进度

SetTimer(1,500,NULL);//每隔0.5秒触发ontimer事件使其前进

returnTRUE; // return TRUE unless you set the focus to a control

处理”前进”按钮的事件:双击此按钮添加如下事件

int i,j;

m_pro.GetRange(i,j);//获取进度条表示的范围

intnpos=m_pro.GetPos();//当前进度条位置

npos+=5;//单击此按钮一次使进度条进度自动加5

if(npos>j)//如果进度条当前的进度比进度条所能表示的进度大

npos=j;//则进度条进度到最大位置不再前进

m_pro.SetPos(npos);//设置进度条新的进度

m_present.Format(“%4.0f%%”,(float)npos/(float)(j-i)*100.0);//将进度转化为百分制

UpdateData(FALSE);

处理”后退”按钮事件:双击此按钮添加如下事件

inti,j;

m_pro.GetRange(i,j);//获取当前范围

intnpos=m_pro.GetPos();//当前进度条位置

npos-=5;

if(npos<i)

npos=i;

m_pro.SetPos(npos);

m_present.Format(“%4.0f%%”,(float)npos/(float)(j-i)*100.0);

UpdateData(FALSE);

添加事件,使其每隔0.5秒前进一次:

Add FunctionèEdit Code后作如下处理:在initdialog()中添加上面红色粗体的代码

再在TIMER()中添加如下代码

void CMyDlg::OnTimer(UINT nIDEvent) //似的每隔一段时间进度条自动前进5

{

//TODO: Add your message handler code here and/or call default

if(nIDEvent==1)

{

inti,j,npos;

m_pro.GetRange(i,j);

npos=m_pro.GetPos();

m_present.Format(“%4.0f%%”,(float)npos/(float)(j-i)*100.0);

UpdateData(FALSE);

m_pro.StepIt();

}

CDialog::OnTimer(nIDEvent);

}

当然在结束程序后应该释放TIMER于是我们有这样的函数:

void CProgressinDlg::OnDestroy()

{

CDialog::OnDestroy();

KillTimer(1);

}

注意, SetStep:缺省情况下让它自动前进一格的对应的数字是多少

StepIt:自动前进

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157796.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档