在IE6.0版本里面,打开网页的过程中,IE右上角会有一个动画图标,一个地球在转动。类似的动画还可以在MSN,QQ登陆的时候看到。这个小例子就是表现这样的实现,
下面是效果图:
它的实现原理非常简单,所以不必解释什么,只是用来练习一下而已。
首先,我们要有一副许多帧拼合成的完整图片,这里采用的是ie使用的图片,它是一个纵向叠加的,因此是一个垂直的长条图。其次,最后一帧和最开始一帧应该是可以连接在一起的。
然后我们在控件中添加一个定时器,增加一个当前帧索引,在定时器的响应中,我们更新当前帧。帧索引不会无限增加,而是从0~maxIndex的一个范围。maxindex的取值=图片高度(假如是垂直叠加)/帧边长-1.
然后在定时器中调用Invalidate()重绘即可,在OnPaint方法中只要根据帧索引计算出原图中相应的位置,并把它绘制到控件表面。当然,还是要启用双缓冲,忽略erasebkground消息这些基本的设定了。
源代码链接:http://files.cnblogs.com/hoodlum1980/IeActiveLogo(vs2005).rar