实现窗口同步的方法和装置制造方法

文档序号:6494202阅读:189来源:国知局
实现窗口同步的方法和装置制造方法
【专利摘要】本发明公开了一种实现窗口同步的方法和装置,属于计算机【技术领域】。所述方法包括:获取打开从属窗口的指令;启动消息钩子,将所述从属窗口对应的从属窗口控件添加到同步名单中;当宿主元素窗口控件发生变化时,通过所述消息钩子获取所述宿主元素窗口控件的变化信息;将所述宿主元素窗口控件的变化信息传送到所述同步名单中的从属窗口控件。所述装置包括:指令获取模块、启动添加模块、信息获取模块和同步变化模块。本发明通过使用消息钩子技术获取宿主元素窗口控件的变化信息,以实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化,从属窗口的移动范围不受限。
【专利说明】实现窗口同步的方法和装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及一种实现窗口同步的方法和装置。
【背景技术】
[0002]近年来,各种客户端软件在提供更多更强大功能的同时,越来越注重用户界面的提升,例如广泛使用的对用户进行提示、提醒功能而存在的气泡窗口等就是一例。气泡窗口附着的宿主元素窗口(主窗口或气泡窗口控件指示的元素)发生移动时,气泡窗口要与宿主元素窗口同步移动以保持指示的正确性。
[0003]现有实现窗口同步的方法如下:将气泡窗口控件设置为宿主元素窗口控件的子控件,当宿主元素窗口控件发生移动时,气泡窗口控件与宿主元素窗口控件同步移动,从而实现气泡窗口控件对应的气泡窗口与宿主元素窗口控件对应的宿主元素窗口同步移动。
[0004]然而,在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]将气泡窗口控件设置为宿主元素窗口控件的子控件,气泡窗口只能在宿主元素窗口的范围内移动,气泡窗口的移动范围受限。

【发明内容】

[0006]为了解决上面所述的现有技术的问题,本发明实施例提供了一种实现窗口同步的方法和装置。所述技术方案如下:
[0007]—方面,提供了一种实现窗口同步的方法,所述方法包括:
[0008]获取打开从属窗口的指令;
[0009]启动消息钩子,将所述从属窗口对应的从属窗口控件添加到同步名单中;其中,所述消息钩子用于获取宿主元素窗口控件的变化;
[0010]当宿主元素窗口控件发生变化时,通过所述消息钩子获取所述宿主元素窗口控件的变化信息;
[0011]将所述宿主元素窗口控件的变化信息传送到所述同步名单中的从属窗口控件,使所述从属窗口控件与所述宿主元素窗口控件同步变化,以实现所述从属窗口控件对应的从属窗口与所述宿主元素窗口控件对应的宿主元素窗口同步变化。
[0012]另一方面,提供了一种实现窗口同步的装置,所述装置包括:
[0013]指令获取模块,用于获取打开从属窗口的指令;
[0014]启动添加模块,用于在所述指令获取模块获取打开从属窗口的指令后,启动消息钩子,将所述从属窗口对应的从属窗口控件添加到同步名单中;其中,所述消息钩子用于获取宿主元素窗口控件的变化;
[0015]信息获取模块,用于在所述启动添加模块将所述从属窗口对应的从属窗口控件添加到同步名单中后,当宿主元素窗口控件发生变化时,通过所述消息钩子获取所述宿主元素窗口控件的变化信息;
[0016]同步变化模块,用于在所述信息获取模块通过所述消息钩子获取所述宿主元素窗口控件的变化信息后,将所述宿主元素窗口控件的变化信息传送到所述同步名单中的从属窗口控件,使所述从属窗口控件与所述宿主元素窗口控件同步变化,以实现所述从属窗口控件对应的从属窗口与所述宿主元素窗口控件对应的宿主元素窗口同步变化。
[0017]本发明实施例提供的技术方案带来的有益效果是:
[0018]通过使用消息钩子技术获取宿主元素窗口控件的变化信息,将宿主元素窗口控件的变化信息传送到同步名单中的从属窗口控件,使从属窗口控件与宿主元素窗口控件同步变化,以实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化,从属窗口的移动范围不受限。
【专利附图】

【附图说明】
[0019]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1是本发明实施例一提供的一种实现窗口同步的方法流程图;
[0021]图2是本发明实施例二提供的一种实现窗口同步的方法流程图;
[0022]图3是本发明实施例三提供的一种实现窗口同步的装置结构示意图;
[0023]图4是本发明实施例三提供的另一种实现窗口同步的装置结构示意图;
[0024]图5是本发明实施例三提供的又一种实现窗口同步的装置结构示意图。
【具体实施方式】
[0025]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0026]实施例一
[0027]本发明实施例提供了一种实现窗口同步的方法,参见图1,该方法包括:
[0028]101:获取打开从属窗口的指令。
[0029]102:启动消息钩子,将从属窗口对应的从属窗口控件添加到同步名单中;其中,消息钩子用于获取宿主元素窗口控件的变化。
[0030]103:当宿主元素窗口控件发生变化时,通过消息钩子获取宿主元素窗口控件的变
化信息。
[0031]104:将宿主元素窗口控件的变化信息传送到同步名单中的从属窗口控件,使从属窗口控件与宿主元素窗口控件同步变化,以实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化。
[0032]优选地,获取打开从属窗口的指令之前,还包括:
[0033]设置从属窗口对应的从属窗口控件继承预设的同步模板类;其中,预设的同步模板类中包含有与宿主元素窗口控件相关的变化逻辑。
[0034]优选地,将从属窗口对应的从属窗口控件添加到同步名单中为:
[0035]调用同步模板类接口方法,将从属窗口控件添加到预设的同步模板类的内部管理模块中的同步名单中;[0036]相应地,将宿主元素窗口控件的变化信息传送到同步名单中的从属窗口控件为:
[0037]将宿主元素窗口控件的变化信息传送到预设的同步模板类的内部管理模块中的同步名单中的从属窗口控件。
[0038]优选地,启动消息钩子之前,还包括:
[0039]判断消息钩子是否已经被启动;
[0040]如果没有被启动,则执行启动消息钩子的步骤。
[0041]优选地,同步变化包括:同步移动、同步隐藏、同步关闭、同步缩小、同步放大或同
步显示。
[0042]本发明实施例所述的实现窗口同步的方法,通过使用消息钩子技术获取宿主元素窗口控件的变化信息,将宿主元素窗口控件的变化信息传送到同步名单中的从属窗口控件,使从属窗口控件与宿主元素窗口控件同步变化,以实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化,从属窗口的移动范围不受限。设置从属窗口对应的从属窗口控件继承预设的同步模板类,通过模板类技术与消息钩子技术,实现窗口同步变化,现有从属窗口控件只需做很小的改动就能与宿主元素窗口同步变化,实现简捷、功能强大、容易扩展,可以提高开发效率。
[0043]实施例二
[0044]本发明实施例提供了一种实现窗口同步的方法,参见图2,该方法包括:
[0045]201:获取打开从属窗口的指令。
[0046]其中,从属窗口包括气泡窗口、在宿主元素窗口中打开的子窗口等宿主元素窗口的子窗口或嵌套窗口等。
[0047]具体地,当用户在宿主元素窗口进行操作,触发了打开某业务场景对应的气泡窗口时,会获取到打开从属窗口的指令。
[0048]具体地,本发明实施例使用模板类技术,将与宿主元素窗口控件相关的变化逻辑存储在一个单独的模板类(为了便于说明将此模板类称为同步模板类)中,设置从属窗口对应的从属窗口控件继承预设的同步模板类。
[0049]202:判断消息钩子是否已经被启动,如果没有被启动,则执行203 ;否则,执行204。
[0050]其中,消息钩子用于获取宿主元素窗口控件的变化。
[0051]具体地,宿主元素窗口可能对应多个从属窗口,多个从属窗口使用一个宿主元素窗口控件变化的消息钩子即可,第一个被打开的从属窗口,执行该步骤时,获取宿主元素窗口控件变化的消息钩子还没有被启动,执行203 ;后续被打开的从属窗口执行该步骤时,获取宿主元素窗口控件变化的消息钩子已经被启动,执行204。
[0052]203:启动消息钩子。
[0053]204:调用同步模板类接口方法,将从属窗口控件添加到预设的同步模板类的内部管理模块中的同步名单中。
[0054]其中,将从属窗口控件添加到预设的同步模板类的内部管理模块中的同步名单中,具体是将从属窗口控件本身的一个C++类的对像(可以称为从属窗口控件的对象引用)添加到预设的同步模板类的内部管理模块中的同步名单中。通过从属窗口控件的对象引用可以访问从属窗口控件的属性、事件和方法。属性是控件数据的简单访问者,从属窗口控件有很多属性,用于处理从属窗口控件的操作。事件则是从属窗口控件的一些简单而可见的功能。
[0055]具体地,调用同步模板类接口方法,将从属窗口控件添加到预设的同步模板类的内部管理模块中的同步名单中,从而让模板类知道该从属窗口控件需要与宿主元素窗口同步变化。并且,同步名单并不限于设置在同步模板类的内部管理模块中,还可以设置在其他地方,对此不做具体限定。
[0056]205:当宿主元素窗口控件发生变化时,通过消息钩子获取宿主元素窗口控件的变化信息,并将宿主元素窗口控件的变化信息传送到同步名单中的从属窗口控件,使从属窗口控件与宿主元素窗口控件同步变化,以实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化。
[0057]以移动为例:当用户用鼠标移动宿主元素窗口时,消息钩子会即时截获到宿主元素窗口移动消息,并将宿主元素窗口移动消息传送到预设的同步模板类的内部管理模块,同步模板类的内部管理模块在收到宿主元素窗口移动消息后,轮询同步名单中的从属窗口控件,并根据宿主元素窗口移动消息中包含的具体移动数据(如移动大小、方向等)来移动同步名单中的从属窗口控件,从而实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化。
[0058]本发明实施例所述的实现窗口同步的方法,通过使用消息钩子技术获取宿主元素窗口控件的变化信息,将宿主元素窗口控件的变化信息传送到同步名单中的从属窗口控件,使从属窗口控件与宿主元素窗口控件同步变化,以实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化,从属窗口的移动范围不受限。设置从属窗口对应的从属窗口控件继承预设的同步模板类,通过模板类技术与消息钩子技术,实现窗口同步变化,现有从属窗口控件只需做很小的改动就能与宿主元素窗口同步变化,实现简捷、功能强大、容易扩展,可以提高开发效率。
[0059]实施例三
[0060]参见图3,本发明实施例提供了一种实现窗口同步的装置,该装置包括:
[0061]指令获取模块301,用于获取打开从属窗口的指令;
[0062]启动添加模块302,用于在指令获取模块301获取打开从属窗口的指令后,启动消息钩子,将从属窗口对应的从属窗口控件添加到同步名单中;其中,消息钩子用于获取宿主元素窗口控件的变化;
[0063]信息获取模块303,用于在启动添加模块302将从属窗口对应的从属窗口控件添加到同步名单中后,当宿主元素窗口控件发生变化时,通过消息钩子获取宿主元素窗口控件的变化信息;
[0064]同步变化模块304,用于在信息获取模块303通过消息钩子获取宿主元素窗口控件的变化信息后,将宿主元素窗口控件的变化信息传送到同步名单中的从属窗口控件,使从属窗口控件与宿主元素窗口控件同步变化,以实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化。
[0065]优选地,参见图4,该装置还包括:
[0066]设置模块305,用于在指令获取模块301获取打开从属窗口的指令之前,设置从属窗口对应的从属窗口控件继承预设的同步模板类;其中,预设的同步模板类中包含有与宿主元素窗口控件相关的变化逻辑。
[0067]优选地,启动添加模块302包括:
[0068]添加单元,用于调用同步模板类接口方法,将从属窗口控件添加到预设的同步模板类的内部管理模块中的同步名单中;
[0069]相应地,同步变化模块304包括:
[0070]传送单元,用于将宿主元素窗口控件的变化信息传送到预设的同步模板类的内部管理模块中的同步名单中的从属窗口控件。
[0071]优选地,参见图5,该装置还包括:
[0072]判断模块306,用于判断消息钩子是否已经被启动;
[0073]通知模块307,用于当判断模块306的判断结果是没有被启动,则通知启动添加模块302执行启动消息钩子的步骤。
[0074]优选地,该同步变化包括:
[0075]同步移动、同步隐藏、同步关闭、同步缩小、同步放大或同步显示。
[0076]本发明实施例所述的实现窗口同步的装置,通过使用消息钩子技术获取宿主元素窗口控件的变化信息,将宿主元素窗口控件的变化信息传送到同步名单中的从属窗口控件,使从属窗口控件与宿主元素窗口控件同步变化,以实现从属窗口控件对应的从属窗口与宿主元素窗口控件对应的宿主元素窗口同步变化,从属窗口的移动范围不受限。设置从属窗口对应的从属窗口控件继承预设的同步模板类,通过模板类技术与消息钩子技术,实现窗口同步变化,现有从属窗口控件只需做很小的改动就能与宿主元素窗口同步变化,实现简捷、功能强大、容易扩展,可以提高开发效率。
[0077]需要说明的是:上述实施例提供的实现窗口同步的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的实现窗口同步的装置与实现窗口同步的的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0078]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0079]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0080]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种实现窗口同步的方法,其特征在于,所述方法包括: 获取打开从属窗口的指令; 启动消息钩子,将所述从属窗口对应的从属窗口控件添加到同步名单中;其中,所述消息钩子用于获取宿主元素窗口控件的变化; 当宿主元素窗口控件发生变化时,通过所述消息钩子获取所述宿主元素窗口控件的变化信息; 将所述宿主元素窗口控件的变化信息传送到所述同步名单中的从属窗口控件,使所述从属窗口控件与所述宿主元素窗口控件同步变化,以实现所述从属窗口控件对应的从属窗口与所述宿主元素窗口控件对应的宿主元素窗口同步变化。
2.根据权利要求1所述的方法,其特征在于,在所述获取打开从属窗口的指令之前,还包括: 设置从属窗口对应的从属窗口控件继承预设的同步模板类;其中,所述预设的同步模板类中包含有与宿主元素窗口控件相关的变化逻辑。
3.根据权利要求2所述的方法,其特征在于,所述将所述从属窗口对应的从属窗口控件添加到同步名单中为: 调用同步模板类接口方法,将所述从属窗口控件添加到预设的同步模板类的内部管理模块中的同步名单中; 相应地,所述将所述宿主元素窗口控件的变化信息传送到所述同步名单中的从属窗口控件为: 将所述宿主元素窗口控件的变化信息传送到所述同步模板类的内部管理模块中的同步名单中的从属窗口控件。
4.根据权利要求1所述的方法,其特征在于,所述启动消息钩子之前,还包括: 判断消息钩子是否已经被启动; 如果没有被启动,则执行所述启动消息钩子的步骤。
5.根据权利要求1所述的方法,其特征在于,所述同步变化包括: 同步移动、同步隐藏、同步关闭、同步缩小、同步放大或同步显示。
6.一种实现窗口同步的装置,其特征在于,所述装置包括: 指令获取模块,用于获取打开从属窗口的指令; 启动添加模块,用于在所述指令获取模块获取打开从属窗口的指令后,启动消息钩子,将所述从属窗口对应的从属窗口控件添加到同步名单中;其中,所述消息钩子用于获取宿主元素窗口控件的变化; 信息获取模块,用于在所述启动添加模块将所述从属窗口对应的从属窗口控件添加到同步名单中后,当宿主元素窗口控件发生变化时,通过所述消息钩子获取所述宿主元素窗口控件的变化信息; 同步变化模块,用于在所述信息获取模块通过所述消息钩子获取所述宿主元素窗口控件的变化信息后,将所述宿主元素窗口控件的变化信息传送到所述同步名单中的从属窗口控件,使所述从属窗口控件与所述宿主元素窗口控件同步变化,以实现所述从属窗口控件对应的从属窗口与所述宿主元素窗口控件对应的宿主元素窗口同步变化。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:设置模块,用于在所述指令获取模块获取打开从属窗口的指令之前,设置从属窗口对应的从属窗口控件继承预设的同步模板类;其中,所述预设的同步模板类中包含有与宿主元素窗口控件相关的变化逻辑。
8.根据权利要求7所述的装置,其特征在于,所述启动添加模块包括: 添加单元,用于调用同步模板类接口方法,将所述从属窗口控件添加到预设的同步模板类的内部管理模块中的同步名单中; 相应地,所述同步变化模块包括: 传送单元,用于将所述宿主元素窗口控件的变化信息传送到所述同步模板类的内部管理模块中的同步名单中的从属窗口控件。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括: 判断模块,用于判断消息钩子是否已经被启动; 通知模块,用于当所述判断模块的判断结果是没有被启动,则通知所述启动添加模块执行所述启动消息钩子的步骤。
10.根据权利要求6所述的装置,其特征在于,所述同步变化包括: 同步移动、同步隐藏、同步关闭、同步缩小、同步放大或同步显示。
【文档编号】G06F9/445GK103902325SQ201210587702
【公开日】2014年7月2日 申请日期:2012年12月28日 优先权日:2012年12月28日
【发明者】张明贺 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1