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开发的圆形进度条控件相关推荐

  1. 使用GDI+实现圆形进度条控件的平滑效果

    DownLoad Src 传统的GDI绘制图形时的一个致命缺点是图像存在锯齿毛糙, 使用GDI+能绘制漂亮的渐变图像并有光滑图像的功能.利用GDI+对圆形进度条控件进行修改,效果如下:

  2. MFC中进度条控件的使用方法

    进度条控件是程序开发中基础控件之一,常用于显示程序的进度.在进行程序安装.文件传输时经常用到.其用法也比较简单固定. 转自:http://jingyan.baidu.com/article/95c9d ...

  3. MFC进度条控件颜色的设置

    平台:VS2013 内容介绍:创建进度条控件Progress Control控件并给它颜色的设置.在VC6.0里头可以直接用SendMessage函数就可以设置颜色了,但是在VS里头是不行的,要对进度 ...

  4. 【iOS 开发】进度条控件 UIProgressView

    目录 iOS 进度条控件 UIProgressView 1. UIProgressView 常规使用 2. UIProgressView 设置进度图片 附 Github 源码: iOS 进度条控件 U ...

  5. Android Paint应用之自定义View实现进度条控件

    在上一篇文章<Android神笔之Paint>学习了Paint的基本用法,但是具体的应用我们还没有实践过.从标题中可知,本文是带领读者使用Paint,自定义一个进度条控件. 上图就是本文要 ...

  6. OS X开发:NSProgressIndicator进度指示器控件

    2019独角兽企业重金招聘Python工程师标准>>> OS X开发:NSProgressIndicator进度指示器控件 NSProgressIndicator是OS X平台上的活 ...

  7. CProgressCtrl进度条控件实现进度滚动效果

    关于CProgressCtrl 控件的基本操作网上有很多资料,可我想实现进度条中进度滚动效果,即很多时候程序出现的等待或启动画面,如下图: 实现这个效果的函数为SetMarquee(_In_ BOOL ...

  8. ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件...

    本篇要登场的有三个控件,分别是滚轴控件.进度条控件和编辑控件. 一.滚轴控件 Ext.slider 1.滚轴控件的定义 下面我们定义三个具有代表意义滚轴控件,分别展示滚轴横向.纵向,以及单值.多值选择 ...

  9. [K/3Cloud]进度条控件编程接口

    进度条控件编程接口 1.启动进度查询 this.GetControl<ProgressBar>().Start(2)  //每2秒查询一次进度 2.汇报进度 在插件中重载 OnQueryP ...

最新文章

  1. 快速提高你的UI设计水平的一些小技巧
  2. 读“基于机器学习的无参考图像质量评估综述”有感
  3. whereis php,Linux命令教程之比较搜索命令whereis与which的区别
  4. CLOSE_WAIT 和TCP_KEEPALIVE
  5. Linux中su命令详解
  6. Linux下交叉编译gdb和gdbserver
  7. caffe网络模型各层详解(一)
  8. php cbd架构,CBD模式
  9. 汽车电子专业知识篇(九)-charge pump的原理介绍
  10. java的三个环境变量是啥_JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)...
  11. Laravel-admin 使用表单动态地保存一个关联模型(源码探究到功能实现)
  12. 【redis】Redis中常用的五大数据类型的介绍以及代码的实现
  13. 数据科学----知识树(机器学习、数据挖掘学习思维导图)
  14. 3GPP 资源 使用、查找 教程
  15. mbit职业测试软件,MBTI职业性格测试(最新免费版)
  16. 武以左为尊,文以右为尊
  17. Random()类生成随机数详解
  18. 链表---给定一个排序链表,删除所有重复的元素每个元素只留下一个
  19. android 自动获取短信验证码
  20. recyclerView横条指示器——仿淘宝菜单模块

热门文章

  1. verilog 计数器_HDLBits: 在线学习 Verilog ()
  2. Express使用http-proxy-middleware
  3. 剑指offer--2.替换空格
  4. python多线程实现
  5. 20162316刘诚昊 《程序设计与数据结构》 第三周学习总结
  6. 那些年,我们追过的java8
  7. python2.7+pyqt4实现记事本基本功能
  8. 一个C语言小程序,有10几个命令和MSDOS一样哦:)
  9. 看看用 live write 发布日志的效果
  10. 用stream将dgv中的数据导出到word或excel中小例子