MFC控件编程进度条编写

一丶进度条编程需要用到的方法

  进度条MFC已经帮我们封装好类了. 叫做 CProgressCtrl  进度条编程也很简单.

封装的方法也就那个那几个.

  GetPos()  获取进度条位置

  SetPos()   设置位置.

  GetRange(Value,Value) 获取进度条的最大跟最小的值.

 等等.具体可以查询MSDN

在讲解之前.需要简单讲解下定时器以及按钮.

定时器:

  SetTimer() 设置定时器. 对话框相应 WM_TIMER消息即可.

  KillTimer() 取消定时器的设置.

  EnableWindow(TRUE or FALSE) 使控件可点击根不可点击.

二丶MFC中进度条的控件编程.

  对于MFC控件编程.我们绑定一个变量. 初始化的时候设置最大跟最小值.

例如:

  m_Pro.SetRange(0,100)  范围0 - 100

  按钮点击设置定时器. 此时对话框会接受WM_TIMER消息.我们响应消息.在里面控制进度条的进度.

1.按钮点击下的代码.

void CSpainDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
SetTimer(, ,NULL); //设置100毫秒一次.ID为1
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);// 当按钮点击完成之后.变为禁止状态.
}

2.对话框初始化下的代码.初始化我们的进度条. 为它设置最大跟最小范围.

m_pro.SetRange(, );// 0 - 100

3.对话框实现的WM_TIMER消息.当我们按钮设置了定时器.则这个消息回来.没100毫秒一次.

代码实现

void CSpainDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值 int nPos, nMin, nMax;
m_pro.GetRange(nMin, nMax);//参数是引用类型.所以直接传入变量即可. 最大范围最小返回都会放到这两个变量中.
nPos = m_pro.GetPos(); //获取当前进度条位置
if (nPos >= nMax) //当前位置 > 100.也就是进度条的位置.
{
KillTimer(); //结束定时器.
nPos = ;
GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);//显示为可以点击
}
nPos += ; //每次进度条位置 + 1
m_pro.SetPos(nPos); //设置进度条的位置 CDialogEx::OnTimer(nIDEvent);
}

应用程序截图:

MFC控件编程进度条编写的更多相关文章

  1. MFC控件编程之 按钮编辑框.静态文本的使用,以及访问控件的七种方法.

    MFC控件编程之 按钮编辑框.静态文本的使用以及访问控件的七种方法. 一丶按钮.静态文本的通用属性. 他们都有一个属性.就是可以输入标题内容.以及可以自定义控件ID. 创建一个MFC Dlg对话框. ...

  2. MFC 控件编程之水平滚动条跟垂直滚动条

    MFC 控件编程之水平滚动条跟垂直滚动条 一点水平滚动条的操作 首先在操作滚动条的时候.我们要知道滚动条的一些属性. 比如我们要设置 最大值 最小值. 以及每次递增的值是多少.都要设置. 所有就有一个 ...

  3. MFC控件编程之组合框跟列表框

    MFC控件编程之组合框跟列表框 一丶简介 如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的. 二丶组合框列表框常用的方法 AddString(字符串) 添 ...

  4. MFC控件编程之复选框单选框分组框

    MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1. ...

  5. MFC控件编程之鼠标跟键盘消息

    MFC控件编程之鼠标跟键盘消息 在MFC中鼠标消息.键盘消息我们很常用.所以说一下. 鼠标消息分为客户区消息.跟非客户区消息. 一丶客户区消息 我们可以处理消息.来进行我们相应的函数即可. MFC添加 ...

  6. Winform之跨线程访问控件(在进度条上显示字体)

    此文章对于遇到必须使用线程但是没有办法在线程内操作控件的问题的处理  有很好的解决方案(个人认为的.有更好的方案欢迎交流.) 在做跨线程访问之前我们先了解下我们所做的需要达到的效果: 这个是批量的将x ...

  7. 怎样控制界面控件之进度条(ProgressBar)功能

    一.基础知识: 1.ProgressBar在界面文件XML中的布局: [html] <progressBar android:id="@+id/progressbar_updown&q ...

  8. Android自己定义控件:进度条的四种实现方式

    前三种实现方式代码出自: http://stormzhang.com/openandroid/2013/11/15/android-custom-loading/ (源代码下载)http://down ...

  9. 2015.3.11 VS异步控件及进度条结合应用

    1.在Form中添加 指针控件:BackgroundWorker-bgwork:进度条控件progressBar1 以及开始.取消按钮 2.开始按钮启动异步线程 private void button ...

随机推荐

  1. vue中 关于$emit的用法

    1.父组件可以使用 props 把数据传给子组件.2.子组件可以使用 $emit 触发父组件的自定义事件. vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( ev ...

  2. mybatisGenerator代码生成器

    使用mybatisGenerator可以生成实体类,Mapper接口以及对应xml文件.本文介绍如何使用. 可以直接从本人github下载,只需按照如下步骤即可: 1.导入项目至idea中,项目结构如 ...

  3. mybatis中String参数的传递

    mybatis中String参数的传递 Keywords selectKeywords(@Param("key") String key); 可以在mapper方法的参数钱添加 @ ...

  4. Appium系列文章(1)获取appPackage和appActivity

    appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的.那如何快速的获取这APP的这两个参数呢? 通过cmd命令 ...

  5. 单个div充满屏幕的CSS方法

    1.通过定位实现 <style> *{ margin: 0; padding: 0; } div{ width:100%; height: 100%; background: yellow ...

  6. max (Largest elements in array)

    句法: M = max(A) M = max(A,[],dim) [M,I] = max(___) C = max(A,B) ___ = max(___,nanflag)   描述: M=max(A) ...

  7. MATLAB2016a安装破解教程

    首先,下载软件:下面是某博主的分享,可以下载软件. 链接:https://pan.baidu.com/s/1i6BgD8p       密码:17gg  第一步:安装软件 1,下载文件,得到R2016 ...

  8. 开机后Android应用自动启动

    一.需求 在应用开发过程中,有客户提出在设备开机后自动启动应用. 二.实现方法 实现方案:安卓系统每次开机的时候都会发送一个广播,监听这个广播,广播事件触发启动应用程序. 监听音频广播而不是启动广播, ...

  9. Oracle EBS数据定义移植工具:Xdf(XML Object Description File)

    转载自:http://www.orapub.cn/posts/3296.html Oracle EBS二次开发中,往往会创建很多数据库对象,如表.同义词.视图等,这些数据库对象是二次开发配置管理内容很 ...

  10. Openvswitch手册(5): VLAN and Bonding

    我们这一节来看Port 一般来说一个Port就是一个Interface,当然也有一个Port对应多个Interface的情况,成为Bond VLAN Configuration Port的一个重要的方 ...