类似QQ贴边掩藏功能的实现(一)

来源:互联网 发布:java遍历map集合 编辑:程序博客网 时间:2024/04/26 14:15

        由于现有的系统中加入了即时通讯的功能,所以需要实现类似于QQ的一些常用的功能,这其中就包括QQ的贴边掩藏功能。于是查看了网上很多相关的话题,结合现有系统的实际需求,实现了类似QQ的贴边掩藏功能。

       首先要仔细研究一下QQ的贴边掩藏时的一些细节:贴边掩藏实在何时触发的?如何自动实现掩藏的?将光标移到掩藏边界时窗口又是如何自动伸展出来的?于是带着这些想知道的问题,在操作QQ窗口过程中,仔细观察了贴边掩藏的方式和界面效果。研究对象是最新版的QQ2011,经观察发现:

       1、贴边掩藏有三种方式:向上掩藏、向左掩藏和向右掩藏。当然向下掩藏也可以实现,结合用户的使用习惯,估计没有太大的实用价值,所以就没实现了。

       2、贴边掩藏的触发条件:通过检测拖动QQ窗口时的光标与桌面边界的距离来决定是否需要掩藏窗口,当小于指定的值后才会触发窗口掩藏。具体的,向上掩藏就是检测拖动QQ窗口时的光标距离桌面上边界的距离;向左掩藏则是检测与桌面左边界的距离;向右掩藏则是检测与桌面右边界的距离。

       3、主窗体贴边掩藏后,在对应的桌面边界上会有一个boarder,而且这部分窗体属于主窗体的非客户区域。当我们将光标移到该boarder上,主窗体则会自动显示出来;在显示后,当我们将光标从主窗体中移走后,主窗体则会自动掩藏起来。

       4、向上掩藏,掩藏前后窗体的大小没有改变。向左或右掩藏,窗体的宽度没有改变,窗体的高度则发生了改变:从桌面的高度方向看,掩藏后的窗口充满整个桌面客户区。要退出掩藏状态,只要将窗口拖到客户区以内就可以了。对于向左或右掩藏,在退出掩藏状态后会恢复之前的窗口高度。

        事实上,这里说的掩藏不是真正地将窗口Hide起来,而是将窗口移动到桌面外的区域,给人一种窗口被掩藏的感觉。界面操作细节和效果已经有结果了,那么接下来就是研究怎么通过具体的代码来实现了。

原创粉丝点击