[发明专利]一种窗口动画实现方法和装置有效
申请号: | 201110447215.4 | 申请日: | 2011-12-28 |
公开(公告)号: | CN102591656A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 何文刚 | 申请(专利权)人: | 深圳市万兴软件有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 深圳汇智容达专利商标事务所(普通合伙) 44238 | 代理人: | 潘中毅 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 窗口 动画 实现 方法 装置 | ||
技术领域
本发明涉及一种动画技术,尤其涉及一种窗口动画实现方法和装置。
背景技术
随着用户对个性化需要的增长,计算机用户对用户界面的美观特效要求越来越高,其中,窗口动画属于用户界面特效之一。窗口动画是用户在打开窗口或者关闭窗口过程中,窗口所呈现的动画效果,比如在Window7系统下的Aero主题模式下,窗口关闭时从大到小,渐变退出。
现有技术提供的窗口动画技术有如下两种:
第一种,采用系统调用窗口动画函数,展现系统定义好的窗口动画。具体为:
在显示或关闭窗口的时候调用函数BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags),即可展现系统定义好的窗口动画效果。
第二种,截获系统消息,在显示或者关闭窗口的时候,截取窗口缩略图,在窗口的DC(句柄)上按照一定的规律进行绘制实现窗口动画。需要说明的是,窗口的句柄是本领域技术人员所熟知的概念,在此不再赘述。
实施现有技术存在的缺点分别如下:
对于第一种采用系统效用窗口动画函数的方式,窗口动画只是系统定义好的枚举,比较呆板,不够丰富,无法满足用户的个性化需求;
对于第二种通过截取窗口缩略图在窗口的DC上绘制窗口动画的方式,由于用户所见到的窗口实际上比窗口本身的尺寸要稍微小一些,而在窗口的DC上绘制窗口动画实际是在窗口本身的范围内进行绘制的,其存在的缺陷是:如果窗口动画的最大尺寸大于窗口本身的尺寸时,该窗口动画超出窗口本身的部分会被剪裁,如图1所示,窗口动画(虚线表示)有一部分已经置于窗口本身的尺寸,超出部分会剪裁掉。
由此可见,现有技术提供的窗口动画技术,都存在缺陷。
发明内容
本发明提供一种窗口动画实现方法和装置,可以克服现有技术中存在的窗口动画效率低下,窗口动画效果受限制的技术问题,可以在整个桌面区域范围内进行动画绘制,提高绘制效率,实现绚丽而丰富的窗口动画效果。
为达到上述发明目的,本发明提供了一种窗口动画实现方法,包括:
截获窗口事件,暂停对目标窗口的操作;
获取目标窗口的窗口位图;
创建用于缓存所述窗口位图的窗口缓冲区;
创建半透明画布窗口;
创建工作缓冲区并在所述工作缓冲区中,根据动画算法将所述窗口缓冲区中的窗口位图绘制成窗口动画;
将所述绘制的窗口动画输出到所述半透明画布窗口上进行动画显示。
其中,所述截获窗口事件,暂停对目标窗口的操作,包括:
截获系统的窗口WM_SHOWWINDOWN消息,截获显示或关闭目标窗口的事件;
若事件为显示目标窗口,则暂停对目标窗口进行显示的操作;
若事件为关闭目标窗口,则暂停对目标窗口进行关闭的操作。
其中,所述获取目标窗口的窗口位图,包括:
若事件为显示目标窗口,则根据所述窗口WM_SHOWWINDOWN消息,从缓存中获取待显示的目标窗口的窗口位图;
若事件为关闭目标窗口,则根据所述窗口WM_SHOWWINDOWN消息,从显示界面截取已显示的目标窗口的窗口位图。
其中,所述创建半透明画布窗口,包括:
判断所述目标窗口是否为半透明窗口;
若目标窗口是半透明窗口,则将该目标窗口作为半透明画布窗口;
若目标窗口为非半透明窗口,则创建全屏半透明画布窗口。
其中,当事件为关闭目标窗口时,所述若目标窗口为非半透明窗口,则创建全屏半透明画布之后,还包括:
将所述窗口缓冲区中存储的窗口位图提交到所述全屏半透明画布窗口;
将所述非半透明窗口不自绘隐藏。
相应的,本发明还提供了一种窗口动画实现装置,包括:
事件截获模块,用于截获窗口事件,暂停对目标窗口的操作;
窗口位图获取模块,用于获取目标窗口的窗口位图;
窗口缓冲区创建模块,用于创建缓存所述窗口位图的窗口缓冲区;
画布窗口创建模块,用于创建半透明画布窗口;
工作缓冲区创建模块,用于创建工作缓冲区;
窗口动画绘制模块,用于在所述工作缓冲区创建模块创建的工作缓冲区中,根据动画算法将所述窗口缓冲区中的窗口位图绘制成窗口动画;
动画显示模块,将所述窗口动画绘制模块绘制的窗口动画输出到所述半透明画布窗口上进行动画显示。
其中,所述事件截获模块,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市万兴软件有限公司,未经深圳市万兴软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110447215.4/2.html,转载请声明来源钻瓜专利网。