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);
}

应用程序截图:

最新文章

  1. C# 热敏打印机 Socket 网络链接 打印 图片 (一)
  2. Python简单爬虫入门二
  3. Scala学习(一)
  4. string的实现
  5. ELK笔记
  6. 【转】Spark快速入门指南
  7. QT静态编译
  8. 【设计模式六大原则3】依赖倒置原则(Dependence Inversion Principle)
  9. 浅谈iOS中MVVM的架构设计与团队协作
  10. Foxmail
  11. [LeetCode129]Sum Root to Leaf Numbers
  12. Jquery AutoComplete实现搜索自动完成
  13. IntelliJ IDEA javaDoc的使用
  14. 201521123080《Java程序设计》第8周学习总结
  15. Stars(二维树状数组)
  16. vim实现实时自动保存
  17. Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project Resource: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1]
  18. 在IDEA中实战Git-branch
  19. 使用Go语言访问JSON数据(gojsonq)
  20. 网络类型IPv4和IPv6什么意思?区别?

热门文章

  1. h5页面关于复制某段文字
  2. Windows端口开放
  3. JAVA执行远端服务器的脚本
  4. <c:forEach>循环列表,获取勾选的checkbox中某个<td>的值
  5. vi中删除所有查找到的行
  6. 信息安全技能树(SecWiki中Web安全工程师职位建议)
  7. stm32f10x_it.c、stm32f10x_it.h和stm32f10x_conf.h文件作用
  8. H3C 路由策略(人为打环)
  9. 性能测试---CPU内存部分
  10. mysql客户端连不上数据库