进度条控件的绘制
来源:互联网 发布:新浪微博数据库 编辑:程序博客网 时间:2024/06/04 18:08
在许多自绘控件中进度条的绘制是相对要非常容易得多的一件事情,因为进度条只作为进度信息的显示并不需要做其它的鼠标键盘事件处理,设置一下最小进度和最大进度基本上就可以用了。
我就说说我自绘进度条的方法,首先要绘制它就必须先获得进度相关的一些参数信息,列如最小进度最大进度和当前进度值,这些值获得的方法也很简单通常的办法就是向进度条控件发消息,例如PBM_GETPOS得到当前进度值,这个方法虽然简单但是效率并不高。还有个方法就是获得存储进度信息的数据结构体,当然这个结构体怎样获得微软并没有公开给用户,在这里我就透露下tagPRODATA这样一个构体,下面来看下这个结构体的申明:
那如何获得这个结构体呢?其实非常简单这个结构就存储在窗口属性表里可以用以下函数去获得它:
好了有了以上这个结构体以后我们就可以着手处理绘制工作了,处理进度条的绘制需要处理WM_PAINT,WM_ERASEBKGND这两个消息,先看看WM_PAINT消息的代码处理:
接下来就是WM_ERASEBKGND消息的代码处理:
上面的代码基本上完成了一个粗造的进度条自绘工作,要注意的是Windows还对进度条的非客户区进行了处理,是用于画进度条边框的,如果你不喜他为你绘制的边框那么你可以处理这个消息或者干脆处理WM_NCCALCSIZE消息将非客户尺寸调整为0把边框放在WM_PAINT或WM_ERASEBKGND消息中去画这样更简洁。
- 进度条控件的绘制
- 自定义绘制进度条, 在指定HDC内的RECT内绘制进度条, 适用于列表控件中插入进度条的应用.
- Android圆环形自定义进度条控件的绘制
- Paint绘制简单的进度条
- 自定义开源控件的绘制实例-——类似支付宝信用值的进度条
- emwin的进度条控件
- 绘制进度条
- webkit 控件的绘制
- webkit 控件的绘制
- 日历控件的绘制
- 图形控件的绘制
- 圆形进度条的绘制与使用
- (libgdx学习)AssetManager及进度条的绘制
- 圆形进度条的绘制与使用
- 功能增强的进度条控件
- 不闪烁的进度条控件
- progress进度条控件的使用
- Java 进度条控件的使用
- oracle查询语句大全
- 第一次上博客
- 复制构造函数或赋值操作符
- Video
- qt mysql nodification
- 进度条控件的绘制
- King
- 大家好
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
- 精妙sql语句
- 学习C++和编程的50个观点
- 几个相关EBS有用的URL
- 索引问题
- Oracle启动过程