进度条控件的绘制

       在许多自绘控件中进度条的绘制是相对要非常容易得多的一件事情,因为进度条只作为进度信息的显示并不需要做其它的鼠标键盘事件处理,设置一下最小进度和最大进度基本上就可以用了。

 

      我就说说我自绘进度条的方法,首先要绘制它就必须先获得进度相关的一些参数信息,列如最小进度最大进度和当前进度值,这些值获得的方法也很简单通常的办法就是向进度条控件发消息,例如PBM_GETPOS得到当前进度值,这个方法虽然简单但是效率并不高。还有个方法就是获得存储进度信息的数据结构体,当然这个结构体怎样获得微软并没有公开给用户,在这里我就透露下tagPRODATA这样一个构体,下面来看下这个结构体的申明:

 

 

 

那如何获得这个结构体呢?其实非常简单这个结构就存储在窗口属性表里可以用以下函数去获得它:

 

好了有了以上这个结构体以后我们就可以着手处理绘制工作了,处理进度条的绘制需要处理WM_PAINT,WM_ERASEBKGND这两个消息,先看看WM_PAINT消息的代码处理:

接下来就是WM_ERASEBKGND消息的代码处理:

 

      上面的代码基本上完成了一个粗造的进度条自绘工作,要注意的是Windows还对进度条的非客户区进行了处理,是用于画进度条边框的,如果你不喜他为你绘制的边框那么你可以处理这个消息或者干脆处理WM_NCCALCSIZE消息将非客户尺寸调整为0把边框放在WM_PAINT或WM_ERASEBKGND消息中去画这样更简洁。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值