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:自动前进

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql查看数据隔离级别_如何查看mysql数据库隔离级别

    mysql查看数据隔离级别_如何查看mysql数据库隔离级别CPUQuota=value该参数表示服务可以获取的最大CPU时间,value为百分数形式,高于100%表示可使用1核以上的CPU。与cgroupcpu控制器cpu.cfs_quota_us配置项对应。MemoryLimit=value该参数表示服务可以使用的最大内存量,value可以使用K,M,G,T等后缀表示值的大小。与cgroupmemory控制器…

    2022年5月9日
    45
  • Spring Cloud 从入门到精通

    SpringCloud是一套完整的微服务解决方案,基于SpringBoot框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。本课程由浅入深带领大家一步步攻克SpringCloud各大模块,接着通过一个实例带领大家了解大型分布式微服务架构的搭建过程,最后深入源码加深对它的了解。本课程共分为四个部分:第一部分(第…

    2022年4月8日
    63
  • Hadoop生态系统特点[通俗易懂]

    Hadoop生态系统特点[通俗易懂]1、源代码开源(免费)2、社区活跃、参与者众多3、涉及分布存储和计算的方方面面4、已得到企业界届认同。HaDoop1.0与HaDoop2.0系统分布式存储系统HDFS(HadoopDistributedFileSystem)分布式存储系统提供了高可靠性、高扩展性和高吞吐率的数据存储服务资源管理系统YARN(YetAnotherR

    2022年5月19日
    38
  • 错误 对象不支持“preventDefault”属性或方法

    错误 对象不支持“preventDefault”属性或方法

    2021年8月18日
    63
  • 什么是java单例模式?[通俗易懂]

    什么是java单例模式?[通俗易懂]关于java单例模式的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java单例模式的一个总结。此文内容涉及java单例模式的基本概念,以及什单例模式的优缺点,希望对大家有所帮助。什么是java单例模式?单例模式是保证类的实例是单例的一种常见设计模式。单例模式的优点:(1)首先肯定是节省内存资源,不管多频繁的通过暴露的方法创建实例,都能保证创建的对象在系统内存中是同一实例对象;(2)灵活性,由于所有实例的创建都由该类控制,所有该类可以灵活的更改实例化过程;(3)实例的

    2022年8月11日
    6
  • 面试/笔试第一弹 —— 计算机网络面试问题集锦

    面试/笔试第一弹 —— 计算机网络面试问题集锦本文对面试/笔试过程中经常会被问到的一些关于计算机网络的问题进行了梳理和总结,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,建议大家读一读《图解HTTP》一书。

    2022年6月24日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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