创建自绘进度条,并在进度条上显示当前进度的百分比
平台:VS2005;
资料参考:来源于网络;
内容介绍:创建自绘进度条,并在进度条上显示当前进度的百分比。
第一步:创建基于对话框的工程,在对话框中放置一个进度条控件,
把进度条控件的属性Smooth设置为真。
第二步:
【1】添加基于进度条CProgressCtrl控件新类CMyProCtrl;
【2】为CMyProCtrl类添加WM_PAINT消息
【3】为CMyProCtrl类添加public变量如下:
COLORREF m_ColText;//文本颜色
COLORREF m_ColProgress;//进度条颜色
COLORREF m_ColBlank;//空白区域颜色
【4】在CMyProCtrl类构造函数中初始化变量:
m_ColText=RGB( 255, 0, 0);//文本颜色
m_ColProgress=RGB( 0, 255, 255);//进度条颜色
m_ColBlank=RGB( 192, 192, 192);//空白区域颜色
【5】在CMyProCtrl类OnPaint()中添加:
PAINTSTRUCT ps;//声明一个绘画区域
CDC *pDC=BeginPaint(&ps);//把绘画区域选入设备上下文并开始
int AdrPos=GetPos();//获取进度条的进度位置
CString StrPos;//声明字符串,用于显示进度条的进度
StrPos.Format ("%d%%",AdrPos);//把进度位置复制到StrPos
CRect ClientRC;
GetClientRect(&ClientRC);//获取客户区矩形
CSize CsText=pDC->GetTextExtent (StrPos);//获取显示StrPos的规模大小
int nX=(ClientRC.Width ()-CsText.cx )/2;//获取显示字符串的X
int nY=(ClientRC.Height ()-CsText.cy )/2;//获取显示字符串的Y
pDC->SetBkMode (TRANSPARENT);//设置背景模式为透明
int nMin,nMax;//声明进度条的最大最小限制
GetRange(nMin,nMax);//获取限制
double Every=(double)ClientRC.Width ()/(nMax-nMin);//获取单位刻度
int Now=Every*AdrPos;//当前长度
CRect LeftRC,RightRC;//声明进度条区域和空白区域
LeftRC=RightRC=ClientRC;
LeftRC.right =Now;//进度条区域
RightRC.left =Now;//空白区域
pDC->FillRect (LeftRC,&(CBrush)m_ColProgress);//画进度条区域
pDC->FillRect (RightRC,&(CBrush)m_ColBlank);//画空白区域
pDC->SetTextColor (m_ColText);//设置文本颜色
pDC->TextOutA (nX,nY,StrPos);//写文本
ReleaseDC(pDC);//销毁设备上下文
EndPaint(&ps);//结束绘画区域绘画
【6】把在CMyProCtrl类的头文件包含到对话框程序中;给进度条控件添加基于CMyProCtrl类的变量:m_ProCtrl
【7】为对话框程序添加WM_TIMER消息
SetTimer(1,100,NULL);
//在对话框程序初始化函数中开启时钟
在对话框程序OnTimer(UINT_PTR nIDEvent)中添加:
int NowPos=m_Progress.GetPos();//获取当前进度
m_Progress.SetPos (NowPos+1);//设置进度
【8】拓展:若要用位图绘画进度条,只需把CMyProCtrl类中的画刷换成位图画刷。
pDC->FillRect (LeftRC,&(CBrush)m_ColProgress);//画进度条区域
pDC->FillRect (RightRC,&(CBrush)m_ColBlank);//画空白区域
效果图:
创建自绘进度条,并在进度条上显示当前进度的百分比相关推荐
- ajax实现上传文件的进度,基于Ajax技术实现文件上传带进度条
1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能.在文件上传过程中,经常需要用户进行长时间的等待,为了让用户及时了解上传进度,可以在上传文件的同时,显示文件的上传进度条.运 ...
- Flex4/Flash多文件上传(带进度条)实例分享
要求 必备知识 本文要求基本了解 Adobe Flex编程知识和JAVA基础知识. 开发环境 MyEclipse10/Flash Builder4.6/Flash Player11及以上 演示地址 演 ...
- html资源文件记载进度条,HTML5矢量实现文件上传进度条
在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...
- AngularJS PrimeNG 上传文件 进度条
AngularJS PrimeNG 上传文件 进度条 1.思路: 2.父页面代码实现: 3.子页面代码实现 1.思路: 使用p-progressBar,创建一个新画面,浮在p-fileUpload组件 ...
- ssm上传文件进度条_Java 单文件、多文件上传 / 实现上传进度条
日常,工作 在这里总结一下上传吧(是以前做过的练习,就汇总到个人博客吧) java ssm 框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传 ...
- html 可调节进度条控件,jQuery简单实用的轻量级进度条插件
jQMeter是一款简单实用的轻量级进度条jQuery插件,它可以显示为水平或垂直进度条,进度条加载时带有动画特效,你只需要简单的传入一些参数到jQMeter对象的构造函数中就可以完成你想要的进度条效 ...
- 使用ASP.NET Atlas编写显示真实进度的ProgressBar(进度条)控件
当后台在进行某些长时间的操作时,如果能在页面上提供一个显示真实进度的进度条,而不是让用户不知情的等待或是从前的那些简单的估计,将是一个非常难得的出彩之处.现在使用ASP.NET Atlas完全有可能做 ...
- atitit. 文件上传带进度条 atiUP 设计 java c# php
atitit. 文件上传带进度条atiUP设计java c# php 1. 设计要求 1 2. 原理and架构 1 3. ui 2 4. spring mvc 2 5. springMVC.xml 3 ...
- java fileupload 进度_Java上传文件进度条的实现方法(附demo源码下载)
本文实例讲述了Java上传文件进度条的实现方法.分享给大家供大家参考,具体如下: 东西很简单,主要用到commons-fileupload,其中有一个progressListener的接口,该接口可以 ...
最新文章
- 将Excel文件数据库导入SQL Server
- 手持终端以物联网的模式
- 动态规划-换钱最少货币数
- Java中用户向系统传递参数的三种基本方式
- python交互模式切换_Python 交互式窗口 (REPL) - Visual Studio | Microsoft Docs
- Android之开源框架NineOldAndroids动画库
- node 创建静态服务器并自动打开浏览器
- javascript(jQuery版)切换tab效果自动切换(转自www.jqueryba.com)
- Python_将conda里的环境导入到pychram中
- Request.Querystring中文乱码问题解决
- mysql version 50713_MySQL 5.6 升级为 MySQL 5.7
- steam怎么设公用计算机,steam怎么设置家庭共享 steam家庭共享设置方法
- 如何查看计算机关机事件,深度技术win7系统如何查看电脑的开关机时间【图文】...
- 测试测量 | 【一】如何实现生产过程中的自动化测试?——成功的自动测试系统的目标及面临的问题
- 【2019多校第一场补题 / HDU6578】2019多校第一场A题1001Blank——dp
- 永别了,内涵段子APP及公众号被永久关停!!!!
- Word2013论文的目录和页眉页脚设置
- a session ended very soon after starting. check that the command in profile XXX is correct
- 轻松解读仿生学最优化算法(一)——遗传算法
- 京东生鲜全品类爬虫--往期创作整理