VC用MFC开发的圆形进度条控件
DownLoad Src
VC用MFC开发的圆形进度条控件
visualsan@yahoo.cn NUAA zss
在NBA2007游戏里,还有很多科幻电影里,经常可以看到圆形进度条。有的用来显示导弹发射的准备时间,有的用来倒计时。如图所示。模仿该样式,用MFC实现了一个Activex控件。叙述如下:
该控件的编写思路是:
根据当前值,计算圆弧角度,然后用CShape(一个图形绘制类)绘制扇形,对于连续圆弧则可以一次绘制,而对于间断圆弧,则须根据分段数分别计算角度,然后在分别填充。代码如下:
void CCircleProgressCtrl::Draw1(CDC *pDC,CRect rt,double r1,double r2)
{
POINT pt=rt.CenterPoint();
m_shape.DrawConeGradientSideToSide(pDC,pt,r1,r2,360.0-GetAngle(),GetAngle()-
m_startAngle,startfgcolor,endfgcolor);
}
void CCircleProgressCtrl::Draw2(CDC *pDC,CRect rt,double r1,double r2)
{
POINT pt=rt.CenterPoint();
double st;
int i;
int d=GetAngle()/angPerSubs;
for (i=0;i<d;i++)
{
st=angPerSubs*double(i)+m_startAngle;
m_shape.DrawConeGradientSideToSide(pDC,pt,r1,r2,306.0-st,angPerSubs-
m_dsubs,startfgcolor,endfgcolor);
}
}
void CCircleProgressCtrl::Draw3(CDC *pDC,CRect rt,double r1,double r2)
{
POINT pt=rt.CenterPoint();
double st;
int d=GetAngle()/angPerSubs;
{
for (int i=0;i<d;i++)
{
st=angPerSubs*double(i)+m_startAngle;
m_shape.DrawConeGradientSideToSide(pDC,pt,r1,r2,306.0-st,angPerSubs-
m_dsubs,startfgcolor,endfgcolor);
}
double la=GetAngle()-double(d)*angPerSubs;
if(la>m_dsubs)
m_shape.DrawConeGradientSideToSide(pDC,pt,r1,r2,306.0-st-m_dsubs,-
la+m_dsubs,startfgcolor,endfgcolor);
}
}
运行情况如下:
visualsan@yahoo.cn NUAA ZSS 2009.9.24
控件主要属性如下:
style:样式,其值为0,1,2 。0,1表示绘制间断扇形,2表
示绘制连续扇形。
dot:小数点位数
division:扇形段数
CurrentValue:当前值,若大于最大值,则扇形绘制整园,若
小于最小值,则不绘制扇形。
unit:单位,用于输出显示,可以选择不输出。
maxValue,minValue:最大值,最小值。
startAngle:起始角。
bkcolor:背景颜色
colorBegin:扇形渐变颜色其实值。
colorEnd:扇形渐变颜色终止值。
textColor:文字颜色。
VC用MFC开发的圆形进度条控件相关推荐
- 使用GDI+实现圆形进度条控件的平滑效果
DownLoad Src 传统的GDI绘制图形时的一个致命缺点是图像存在锯齿毛糙, 使用GDI+能绘制漂亮的渐变图像并有光滑图像的功能.利用GDI+对圆形进度条控件进行修改,效果如下:
- MFC中进度条控件的使用方法
进度条控件是程序开发中基础控件之一,常用于显示程序的进度.在进行程序安装.文件传输时经常用到.其用法也比较简单固定. 转自:http://jingyan.baidu.com/article/95c9d ...
- MFC进度条控件颜色的设置
平台:VS2013 内容介绍:创建进度条控件Progress Control控件并给它颜色的设置.在VC6.0里头可以直接用SendMessage函数就可以设置颜色了,但是在VS里头是不行的,要对进度 ...
- 【iOS 开发】进度条控件 UIProgressView
目录 iOS 进度条控件 UIProgressView 1. UIProgressView 常规使用 2. UIProgressView 设置进度图片 附 Github 源码: iOS 进度条控件 U ...
- Android Paint应用之自定义View实现进度条控件
在上一篇文章<Android神笔之Paint>学习了Paint的基本用法,但是具体的应用我们还没有实践过.从标题中可知,本文是带领读者使用Paint,自定义一个进度条控件. 上图就是本文要 ...
- OS X开发:NSProgressIndicator进度指示器控件
2019独角兽企业重金招聘Python工程师标准>>> OS X开发:NSProgressIndicator进度指示器控件 NSProgressIndicator是OS X平台上的活 ...
- CProgressCtrl进度条控件实现进度滚动效果
关于CProgressCtrl 控件的基本操作网上有很多资料,可我想实现进度条中进度滚动效果,即很多时候程序出现的等待或启动画面,如下图: 实现这个效果的函数为SetMarquee(_In_ BOOL ...
- ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件...
本篇要登场的有三个控件,分别是滚轴控件.进度条控件和编辑控件. 一.滚轴控件 Ext.slider 1.滚轴控件的定义 下面我们定义三个具有代表意义滚轴控件,分别展示滚轴横向.纵向,以及单值.多值选择 ...
- [K/3Cloud]进度条控件编程接口
进度条控件编程接口 1.启动进度查询 this.GetControl<ProgressBar>().Start(2) //每2秒查询一次进度 2.汇报进度 在插件中重载 OnQueryP ...
最新文章
- 快速提高你的UI设计水平的一些小技巧
- 读“基于机器学习的无参考图像质量评估综述”有感
- whereis php,Linux命令教程之比较搜索命令whereis与which的区别
- CLOSE_WAIT 和TCP_KEEPALIVE
- Linux中su命令详解
- Linux下交叉编译gdb和gdbserver
- caffe网络模型各层详解(一)
- php cbd架构,CBD模式
- 汽车电子专业知识篇(九)-charge pump的原理介绍
- java的三个环境变量是啥_JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)...
- Laravel-admin 使用表单动态地保存一个关联模型(源码探究到功能实现)
- 【redis】Redis中常用的五大数据类型的介绍以及代码的实现
- 数据科学----知识树(机器学习、数据挖掘学习思维导图)
- 3GPP 资源 使用、查找 教程
- mbit职业测试软件,MBTI职业性格测试(最新免费版)
- 武以左为尊,文以右为尊
- Random()类生成随机数详解
- 链表---给定一个排序链表,删除所有重复的元素每个元素只留下一个
- android 自动获取短信验证码
- recyclerView横条指示器——仿淘宝菜单模块