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

MFC 进度条使用方法[通俗易懂]目的:学习MFC进度条控件的用法;步骤:新建一个对话框项目。添加控件“progress”“static”è改名了“进度”,添加两个BUTTON名字分别为“后退”“前进”,如下图:为static控件添加CString类型的数据变量m_present;为progress添加control类型的数据变量m_pro初始化进度条:右键classwinzerd,选中如下项目

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

步骤:

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

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

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

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

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

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秒前进一次:

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

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于是我们有这样的函数:

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

void CProgressinDlg::OnDestroy()

{

       CDialog::OnDestroy();

       KillTimer(1);

}

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

StepIt:自动前进

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)

    史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)转载请标明出处:http://blog.csdn.net/forezp/article/details/70037291本文出自方志朋的博客在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件。它就是SpringCloudConfig。一、简介在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要…

  • 学习PetShop3.0(4)购物车

    学习PetShop3.0(4)购物车终于到购物车了,在看这个之前应该已经明白了第三篇的那个模型,这样购物车基本也就明白了。来看一下ShoppingCart.aspx这个页。当你看好了一个宠物,比如可爱的GoldenRetriever,嘿嘿,那就点addtocart按钮,这时就会跳到ShoppingCart.aspx,url里带了这个宠物的id号,根据该id号程序将该宠物放到cart里面。然后你可以再去挑别的宠物,比如一只猫(……

    2022年10月16日
  • PS PhotoShop CS5 CS6 序列号 安装

    PS PhotoShop CS5 CS6 序列号 安装

  • 子网掩码和ip地址的关系_ip地址和子网掩码求网络地址

    子网掩码和ip地址的关系_ip地址和子网掩码求网络地址1、什么是ip地址在网络中,所有的设备都会被分配一个地址。这个地址就相当于某条路上的XX号XX房。其中【号】对应的号码是分配了整个子网的,而【房】对应的号码是分配给子网中的计算机的,这就是网络中的地

  • cBridge 2.0 – 200万美元漏洞赏金计划

    cBridge 2.0 – 200万美元漏洞赏金计划我们发布了cBridge2.0-200万美元漏洞赏金计划,快来看看吧!

  • 惠普笔记本电脑自动关机是什么原因_台式老电脑经常自动关机怎么办

    惠普笔记本电脑自动关机是什么原因_台式老电脑经常自动关机怎么办运行台式惠普win7系统电脑时总会碰到各种故障问题,这不一位用户说电脑总是自动关机,怎么回事?造成电脑自动关机的原因有很多,我们要根据具体故障原因来解决,下面小编告诉大家台式惠普电脑总是自动关机的三种原因及解决方法。惠普电脑总是自动关机的解决方法一:1、首先检查是不是硬件问题造成的电脑突然关机,如果你不懂硬件设备,建议您拿到专业电脑维修点进行维修检查,请不要乱拆否则硬件设备严重损坏。2、在检查电脑…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号