使用VC7.0 制作基于位图特效的进度条控件

ZDNet软件频道 时间:2002-10-30 作者:刘巍 |  我要评论()
本文关键词:liuwei
基于位图特效的进度条往往在游戏里见得很多,尤其是在换关的时候,会有彩色的动画进度条,非常好看。我用VC7.0制作了一个基于位图灰度变化特效的进度条控件,下面我就讲解一下如何使用该控件。

作者:刘巍 基于位图特效的进度条往往在游戏里见得很多,尤其是在换关的时候,会有彩色的动画进度条,非常好看。现而今的桌面应用程序也开始有了这种趋势,位图越来越多,程序越来越好看,我真怀疑总有一天高程考试里会加进美术题的。我用VC7.0制作了一个基于位图灰度变化特效的进度条控件,这一控件的来由与现在流行的《疯狂坦克》有关,在游戏开始的时候,一个灰色的位图由上自下慢慢变成彩色,标志游戏的加载进程。这个控件能够很容易的被修改,以加入更多的特效支持,但是作为一个模板,首先还是用比较简单的灰度转换特效来得清楚。

控件功能介绍

此控件名为BitmapProgressCtrl 1.0,它提供了一个名为IbitmapProgCtrl的接口,其中包含三个属性:

LONG Direction: 控制进度条的行进方向,从上到下(1),从下到上(2),从左自右(3)或者从右自左(4)

LONG FullLength: 进度条的总长度,缺省为100,当进度条前进1时就代表完成了百分之一,当然,你可以把这个值设得更大,以获得更精确的前进步长。

LONG Style: 设定特效。当前只实现了一种特效,就是灰度位图,所以这个属性保留,以便今后扩展

另有五个方法:

SetStyle(LONG style):作用等同于Style属性

LoadBackgroundBitmap([in] BSTR bstrBitmapFileName):加载背景位图,位图文件名是其唯一参数

Reset(void): 将进度条恢复为初始状态

MoveForward(LONG length) :进度条前进length个单位长度,length是相对于FullLength属性的步长。

如果FullLength是100,那么length为1时,进度条前进百分之一的距离,如果FullLength是1000,那么length为1时,进度条前进千分之一。

MoveBackward(LONG length): 进度条后退length个单位长度。由于现在还没有想出什么时候进度条应该后退,所以暂时没有实现它。调用这个方法只会简单的返回S_OK,不会有任何反应。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134