[发明专利]不规则窗口中的消息处理方法及装置有效
申请号: | 201210222308.1 | 申请日: | 2012-06-28 |
公开(公告)号: | CN103513857B | 公开(公告)日: | 2017-12-19 |
发明(设计)人: | 朱翼鹏;陈宁一;胡宇光;周云峰;刘伟刚;刘航 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F3/0481 | 分类号: | G06F3/0481;G06F9/44 |
代理公司: | 北京华沛德权律师事务所11302 | 代理人: | 刘丽君 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 不规则 窗口 中的 消息 处理 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,特别是涉及不规则窗口中的消息处理方法及装置。
背景技术
随着Windows在操作系统上取得的巨大成绩,Windows用户界面也日益成为业界标准。统一的界面给广大用户对应用软件的学习与使用带来了很大方便。但这种千篇一律的“标准”界面会使得用户看到的应用程序窗口基本都是带有标题栏的矩形外观,比较死板。因此,一些应用程序为了给用户带来视觉上的冲击,会考虑实现不规则窗口,这种不规则窗口主要体现在窗口的外形上。例如,将整个窗口显示为一只兔子的形状等等。
在实现不规则窗口时,一种方式是利用SetWindowRgn()函数,将绘画和鼠标消息限定在窗口的一个指定的区域,因此实际上是使窗口成为指定的不规则形状(区域形状)。“区域”是Windows GDI中一种强有力的机制,区域是设备上的一块空间,可以是任意形状,复杂的区域可以由各个小区域组合而成。
这种方式能够实现窗口形状的不规则,但是如果想在窗口上加上半透明的效果,这种方式就无法实现了。所谓半透明效果是指可以透过该窗口,模糊地看到它下面被覆盖的窗口中的内容。为了实现这种半透明效果,可以采用分层窗口的方式针对窗口中的每个像素设置透明度属性,透明度属性的取值可以从0到255之间任意进行选择,不同的值则可以呈现出不同的透明度,如果某个像素点的透明度值被设定为0,则为全透明的效果,如果需要将窗口显示为某形状,则将矩形窗口中该形状以外的部分对应的像素的透明度值设置为0即可。因此,使用这种分层窗口的方式,既能够实现不规则的窗口形状,又可以实现窗口的半透明效果。
但是,一旦使用分层窗口方式设置窗口的透明度,则windows操作系统将不再支持向窗口中添加控件(包括输入框、按钮等等),使得无法通过向窗口中添加控件的方式来实现各种具体的功能(例如截图功能等)。
在现有技术中,为了能够在使用分层窗口的方式实现了窗口的不规则形状及透明度之后,使得窗口仍然能够实现应有的功能,可以采用分层的方式来实现。例如,在其中的第一层上使用分层窗口实现窗口的不规则形状、半透明效果等,在第二层上添加窗口中需要实现的各个功能对应的控件,并利用SetWindowRgn()函数将这些控件所在区域之外的部分设置为全透明,然后叠加到第一层上,这样,就可以实现窗口的不规则形状以及半透明效果,同时能够通过控件的方式实现窗口中所需实现的功能。
但是,这种实现方式中,至少存在以下问题:一般不适合大规模使用;并且,由于毕竟是两层窗口叠加之后的效果,因此,当两层窗口中有任意一个移动或者改变大小时,另一个需要相应变化,实践表明,如果移动时速度比较快则会留下残影。可见,这种方案适用于不移动窗口的简单程序。
但在实际应用中,多数的应用程序都是比较复杂的,并且移动窗口的情况也经常出现,因此,迫切需要本领域技术人员解决的技术问题就在于,如何在使用分层窗口实现窗口的不规则形状、半透明效果时,仍然能够实现窗口中的对象对应的功能,并且不会受到应用程序复杂度的限制,在窗口移动时也不会留下残影。
发明内容
本发明提供了不规则窗口中的消息处理方法及装置,能够在使用分层窗口实现窗口的不规则形状、半透明效果时,仍然能够实现窗口中的对象对应的功能,并且不会受到应用程序复杂度的限制,在窗口移动时也不会留下残影。
本发明提供了如下方案:
一种不规则窗口中的消息处理方法,通过分层窗口方式设定窗口中各个像素的透明度值,以实现窗口的不规则形状和/或半透明效果,所述方法包括:
在所述窗口中进行对象操作区域的绘制;
接收操作系统发送的用户操作消息,所述用户操作消息中包括操作焦点的当前位置以及当前用户操作的类型;
判断所述操作焦点的当前位置是否位于某对象的操作区域内,如果是,将该对象确定为被操作对象,并根据当前用户操作的类型,运行该类型下该被操作对象的消息处理方法,实现对所述用户操作消息的处理。
可选的,当所述被操作对象为功能按钮,所述操作类型为操作焦点进入该功能按钮操作区域内时,所述根据当前用户操作的类型,运行该类型下该被操作对象的消息处理方法,包括:
执行操作焦点进入该功能按钮操作区域时对应的消息处理方法,以便于对窗口中该功能按钮操作区域进行重绘,展现出操作焦点进入该功能按钮操作区域前后,该功能按钮操作区域在展现效果上的变化。
可选的,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210222308.1/2.html,转载请声明来源钻瓜专利网。