CN104331236B - 一种多个窗口的绑定拖动方法及装置 - Google Patents
一种多个窗口的绑定拖动方法及装置 Download PDFInfo
- Publication number
- CN104331236B CN104331236B CN201410525145.3A CN201410525145A CN104331236B CN 104331236 B CN104331236 B CN 104331236B CN 201410525145 A CN201410525145 A CN 201410525145A CN 104331236 B CN104331236 B CN 104331236B
- Authority
- CN
- China
- Prior art keywords
- window
- windows
- management class
- incoming
- window management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例公开一种多个窗口的绑定拖动方法及装置,涉及计算机技术领域,为简单方便地实现多个窗口的绑定拖动而发明。多个窗口的绑定拖动方法包括:定义用于管理窗口的窗口管理类,并创建用于管理窗口之间位置关系的窗口管理类对象;将两个以上窗口向所述窗口管理类对象进行注册;在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类;所述窗口管理类计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置。本发明适用于多个窗口绑定拖动的场合。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种多个窗口的绑定拖动方法及装置。
背景技术
在很多应用软件中,如果视窗界面上的两个或多个窗口相互之间有联系,并且想要同时展示给用户,那么在移动其中某一个窗口时可能就会要求关联的窗口也要随之移动。例如在暴风影音中,播放器窗口和暴风盒子窗口之间就存在这样的关系,所以在移动播放器窗口时,暴风盒子窗口也会和播放器窗口一起被移动。
现如今,大多数软件实现多个窗口的绑定拖动,都是通过在某一个窗口被移动的同时该窗口会向其他相关窗口发送消息,让其他相关窗口也能够跟随该窗口移动,但是,这样的解决方案相当的繁琐,尤其是当窗口数量很多时,极其容易出错,导致使用起来很大的不便。
发明内容
有鉴于此,本发明实施例提供一种多个窗口的绑定拖动方法及装置,能简单方便地实现多个窗口的绑定拖动。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供一种多个窗口的绑定拖动方法,包括:
定义用于管理窗口的窗口管理类,并创建用于管理窗口之间位置关系的窗口管理类对象;
将两个以上窗口向所述窗口管理类对象进行注册,以使所述窗口管理类对象维护所述两个以上窗口之间的相对位置关系;
在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类;
所述窗口管理类,根据所述其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置。
可选地,所述在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置传入所述窗口管理类,包括:在接收到其中一个窗口移动的消息后,调用所述窗口管理类的改变窗口位置接口函数,将该窗口将要移动到的目标位置传入所述窗口管理类。
可选地,所述在接收到其中一个窗口移动的消息后,将该窗口将要移动的偏移量传入所述窗口管理类,包括:在接收到其中一个窗口移动的消息后,调用所述窗口管理类的改变窗口位置接口函数,将该窗口将要移动的偏移量传入所述窗口管理类。
可选地,在将两个以上窗口向所述窗口管理类对象进行注册之后,还包括:
向所述窗口管理类传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
可选地,所述向所述窗口管理类传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,包括:通过调用所述窗口管理类的窗口内容与窗口边界间隙维护接口函数,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量。
可选地,所述的多个窗口的绑定拖动方法,还包括:调用所述窗口管理类的解除绑定接口函数,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
可选地,定义的所述窗口管理类对外提供的接口函数包括:
窗口内容与窗口边界间隙维护接口函数,用于将两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量传入所述窗口管理类;
第一改变窗口位置接口函数,用于将一窗口将要移动到的目标位置传入所述窗口管理类;
第二改变窗口位置接口函数,用于将一窗口将要移动到的偏移量传入所述窗口管理类;
解除绑定接口函数,用于向所述窗口管理类传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
可选地,所述在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类,包括:在接收到其中一个窗口移动的消息后,调用所述窗口管理类的ModifyWindowPos接口函数,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类。
可选地,所述通过调用所述窗口管理类的窗口内容与窗口边界间隙维护接口函数,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,包括:通过调用所述窗口管理类的UpdateWindowPadding接口函数,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量。
可选地,所述调用所述窗口管理类的解除绑定接口函数,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系,包括:调用所述窗口管理类的DetachWindow接口函数,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
与现有技术相比,本发明实施例多个窗口的绑定拖动方法,由窗口管理类对象来维护两个以上窗口之间的相对位置关系,由窗口管理类根据其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置,这样将窗口绑定的逻辑封装到一处,不需要在多个窗口之间维护窗口之间的位置关系,降低了开发的复杂度,能简单方便地实现多个窗口的绑定拖动。
另一方面,本发明实施例提供一种多个窗口的绑定拖动装置,包括:窗口管理类模块,用于创建用于管理窗口之间位置关系的窗口管理类对象;注册模块,用于将两个以上窗口向所述窗口管理类对象进行注册,以使所述窗口管理类对象维护所述两个以上窗口之间的相对位置关系;第一传入模块,用于在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类模块;所述窗口管理类模块,根据所述其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置。
可选地,所述窗口管理类模块包括第一改变窗口位置接口函数子模块;其中所述第一传入模块包括:第一消息接收子模块,用于接收窗口移动的消息;第一调用子模块,用于在所述第一消息接收子模块接收到其中一个窗口移动的消息后,调用所述窗口管理类模块的第一改变窗口位置接口函数子模块,将该窗口将要移动到的目标位置传入所述窗口管理类模块。
可选地,所述窗口管理类模块包括第二改变窗口位置接口函数子模块;其中所述第一传入模块包括:第二消息接收子模块,用于接收窗口移动的消息;第二调用子模块,用于在所述第二消息接收子模块接收到其中一个窗口移动的消息后,调用所述窗口管理类模块的第二改变窗口位置接口函数子模块,将该窗口将要移动的偏移量传入所述窗口管理类模块。
可选地,所述的多个窗口的绑定拖动装置,还包括:第二传入模块,用于向所述窗口管理类模块传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
可选地,所述窗口管理类模块包括窗口内容与窗口边界间隙维护接口函数子模块;其中第二传入模块,用于通过调用所述窗口管理类模块的窗口内容与窗口边界间隙维护接口函数子模块,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
可选地,所述窗口管理类模块包括解除绑定接口函数子模块;其中所述的窗口的绑定拖动装置还包括:绑定解除模块,用于调用所述窗口管理类模块的解除绑定接口函数子模块,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
与现有技术相比,本发明实施例多个窗口的绑定拖动装置,由窗口管理类对象来维护两个以上窗口之间的相对位置关系,由窗口管理类根据其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置,这样将窗口绑定的逻辑封装到一处,不需要在多个窗口之间维护窗口之间的位置关系,降低了开发的复杂度,能简单方便地实现多个窗口的绑定拖动。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一种多个窗口的绑定拖动方法一实施方式的流程图;
图2为本发明一种多个窗口的绑定拖动方法另一实施方式的流程图;
图3为本发明一种多个窗口的绑定拖动装置一实施方式的结构示意图;
图4为本发明一种多个窗口的绑定拖动装置另一实施方式的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
参看图1,本发明一种多个窗口的绑定拖动方法实施方式,包括:
S11、定义用于管理窗口的窗口管理类,并创建用于管理窗口之间位置关系的窗口管理类对象;
S12、将两个以上窗口向所述窗口管理类对象进行注册,以使所述窗口管理类对象维护所述两个以上窗口之间的相对位置关系;
S13、在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类;
S14、所述窗口管理类,根据所述其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置。
本发明实施例多个窗口的绑定拖动方法,由窗口管理类对象来维护两个以上窗口之间的相对位置关系,由窗口管理类根据其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置,这样将窗口绑定的逻辑封装到一处,不需要在多个窗口之间维护窗口之间的位置关系,降低了开发的复杂度,能简单方便地实现多个窗口的绑定拖动。
以下将对本发明所提供的一种多窗口的视窗管理方法实施方式进行详细说明。
S11、定义用于管理窗口的窗口管理类,并创建用于管理窗口之间位置关系的窗口管理类对象。
本步骤中,定义窗口管理类KWndComboMgr,用于管理同一类相关的所有窗口的句柄。句柄是一个4字节长的数值,用来标识应用程序中的不同对象和同类对象中的不同实现,如:一个窗口、按钮、图标、滚动条、输出设备、控件或者文件等。
定义的所述窗口管理类可以对外提供如下接口函数:
窗口内容与窗口边界间隙维护接口函数:void UpdateWindowPadding(HWNDhWnd,int nPaddingLeft,int nPaddingTop,int nPaddingRight,int nPaddingBottom),用于将两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量传入所述窗口管理类;
第一改变窗口位置接口函数:BOOL ModifyWindowPos(HWND hWnd,const POINT&wndPosTo),用于将一窗口将要移动到的目标位置传入所述窗口管理类;
第二改变窗口位置接口函数:BOOL ModifyWindowPos(HWND hWnd,const intnDiffX,const int nDiffY),用于将一窗口将要移动到的偏移量传入所述窗口管理类;
解除绑定接口函数:BOOL DetachWindow(HWND hWnd),用于向所述窗口管理类传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
创建的窗口管理类对象,用来维护两个以上窗口之间的位置关系。
S12、将两个以上窗口向所述窗口管理类对象进行注册,以使所述窗口管理类对象维护所述两个以上窗口之间的相对位置关系。
本步骤中,要利用窗口管理类对象来维护两个以上窗口之间的位置关系,需要先将两个以上窗口向所述窗口管理类对象进行注册。
S13、在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类。
当其中一个窗口移动时,会发出一个移动(Move)消息。在接收到所述其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类。
可选地,本实施方式中,所述在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置传入所述窗口管理类可以包括:在接收到其中一个窗口移动的消息后,调用所述窗口管理类的改变窗口位置接口函数,将该窗口将要移动到的目标位置传入所述窗口管理类。
具体来说,在接收到其中一个窗口移动的消息后,调用所述窗口管理类的ModifyWindowPos接口函数,将该窗口将要移动到的目标位置传入所述窗口管理类。其中,所述的ModifyWindowPos接口函数可以为BOOL ModifyWindowPos(HWND hWnd,constPOINT&wndPosTo)。
可选地,本实施方式中,所述在接收到其中一个窗口移动的消息后,将该窗口将要移动的偏移量传入所述窗口管理类也可以包括:在接收到其中一个窗口移动的消息后,调用所述窗口管理类的改变窗口位置接口函数,将该窗口将要移动的偏移量传入所述窗口管理类。
具体来说,在接收到其中一个窗口移动的消息后,调用所述窗口管理类的ModifyWindowPos接口函数,将该窗口将要移动的偏移量传入所述窗口管理类。其中,所述的ModifyWindowPos接口函数可以为BOOL ModifyWindowPos(HWND hWnd,const intnDiffX,const int nDiffY)。
S14、所述窗口管理类,根据所述其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置。
本步骤中,KWndComboMgr类会根据传入的参数,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,对已向所述窗口管理类对象注册的所有窗口进行移动,从当前位置移动到目标位置。
本发明多个窗口的绑定拖动方法实施方式,由窗口管理类对象来维护两个以上窗口之间的相对位置关系,将窗口绑定的逻辑封装到一处,不需要在多个窗口之间维护窗口之间的位置关系,降低了开发的复杂度,能简单方便地实现多个窗口的绑定拖动。
参看图2,为了确保各个窗口始终处于工作区域中,可选地,本发明多个窗口的绑定拖动方法一实施方式中,在将两个以上窗口向所述窗口管理类对象进行注册之后,还可以包括:
S15、向所述窗口管理类传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
在本实施方式中,所述的工作区域,以windows系统为例即表示除任务栏之外的屏幕部分,在该工作区域中既可以显示一个窗口,也可以显示多个窗口。
可选地,本实施方式中,可以通过调用所述窗口管理类的窗口内容与窗口边界间隙维护接口函数,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量。
具体来讲,可以通过调用所述窗口管理类的UpdateWindowPadding接口函数,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量。其中的UpdateWindowPadding接口函数可以是void UpdateWindowPadding(HWND hWnd,int nPaddingLeft,int nPaddingTop,int nPaddingRight,intnPaddingBottom)。
参看图2,如果一个窗口不再需要被所述KWmdComboMgr类对象维护位置关系,即可解除对该窗口的绑定。可选地,本发明多个窗口的绑定拖动方法一实施方式中,所述的多个窗口的绑定拖动方法,还可以包括:
S16、调用所述窗口管理类的解除绑定接口函数,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
具体来讲,可以调用所述窗口管理类的DetachWindow接口函数,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。其中的DetachWindow接口函数可以是BOOL DetachWindow(HWND hWnd)。
实施例一
下面以移动毒霸悬浮窗和天气泡泡为例,对本发明多个窗口的绑定拖动方法进行举例性说明。
当毒霸悬浮窗弹出天气泡泡时,就存在毒霸悬浮窗和天气泡泡两个窗口。本发明多个窗口的绑定拖动方法实施例,包括如下步骤:
S31、定义一个KWndComboMgr类,并创建KWndComboMgr对象用来维护毒霸悬浮窗和天气泡泡这两个窗口之间的位置关系。
S32、将毒霸悬浮窗和天气泡泡这两个窗口向所述KWndComboMgr对象进行注册,以使所述KWndComboMgr对象维护这两个窗口之间的相对位置关系。
S33、调用UpdateWindowPadding(),传入毒霸悬浮窗和天气泡泡这两个窗口各自的句柄和窗口内容与窗口边界之间的偏移量。
S34、当悬浮窗被移动时,会发出一个Move消息,在处理该Move消息时,调用KWndComboMgr的ModifyWindowPos函数,将要移动到的窗口的位置传入,KWndComboMgr在内部会将两个窗口的目标位置自动计算出来,并将毒霸悬浮窗和天气泡泡这两个窗口移对到相应的目标位置。同理,当天气泡泡窗口被移动时,也只需要调用KWndComboMgr的ModifyWindowPos函数进行相应的处理即可。
S35、当天气泡泡被关闭时,因为天气泡泡已经不存在了,这时不再需要维护天气泡泡和悬浮窗之间的位置关系了,需要将天气泡泡窗口从KWndComboMgr对象中分离出来。调用KWndComboMgr的DetachWindow函数,传入天气泡泡的窗口的句柄即可解除对天气泡泡的绑定。
参看图3,本发明还提供一种多个窗口的绑定拖动装置实施方式,包括:窗口管理类模块11,用于创建用于管理窗口之间位置关系的窗口管理类对象;注册模块12,用于将两个以上窗口向所述窗口管理类对象进行注册,以使所述窗口管理类对象维护所述两个以上窗口之间的相对位置关系;第一传入模块13,用于在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类模块;所述窗口管理类模块11,根据所述其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置。
本发明实施例多个窗口的绑定拖动装置,由窗口管理类对象来维护两个以上窗口之间的相对位置关系,由窗口管理类根据其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置,这样将窗口绑定的逻辑封装到一处,不需要在多个窗口之间维护窗口之间的位置关系,降低了开发的复杂度,能简单方便地实现多个窗口的绑定拖动。
参看图4,可选地,本发明多个窗口的绑定拖动装置一实施方式中,所述窗口管理类模块11包括第一改变窗口位置接口函数子模块110a;其中所述第一传入模块13包括:第一消息接收子模块131a,用于接收窗口移动的消息;第一调用子模块132a,用于在所述第一消息接收子模块接收到其中一个窗口移动的消息后,调用所述窗口管理类模块的第一改变窗口位置接口函数子模块,将该窗口将要移动到的目标位置传入所述窗口管理类模块。
可选地,本发明多个窗口的绑定拖动装置一实施方式中,所述窗口管理类模块11包括第二改变窗口位置接口函数子模块110b;其中所述第一传入模块13包括:第二消息接收子模块131b,用于接收窗口移动的消息;第二调用子模块132b,用于在所述第二消息接收子模块接收到其中一个窗口移动的消息后,调用所述窗口管理类模块的第二改变窗口位置接口函数子模块,将该窗口将要移动的偏移量传入所述窗口管理类模块。
参看图4,为了确保各个窗口始终处于工作区域中,可选地,本发明多个窗口的绑定拖动装置一实施方式中,所述的多个窗口的绑定拖动装置,还可以包括:第二传入模块14,用于向所述窗口管理类模块传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
在本实施方式中,所述的工作区域,以windows系统为例即表示除任务栏之外的屏幕部分,在该工作区域中既可以显示一个窗口,也可以显示多个窗口。
参看图4,可选地,本发明多个窗口的绑定拖动装置一实施方式中,所述窗口管理类模块11包括窗口内容与窗口边界间隙维护接口函数子模块111;其中第二传入模块14,用于通过调用所述窗口管理类模块11的窗口内容与窗口边界间隙维护接口函数子模块111,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
参看图4,如果一个窗口不再需要被所述KWmdComboMgr类对象维护位置关系,即可解除对该窗口的绑定。可选地,本发明多个窗口的绑定拖动装置一实施方式中,所述窗口管理类模块11包括解除绑定接口函数子模块112;其中所述的窗口的绑定拖动装置还可以包括:绑定解除模块15,用于调用所述窗口管理类模块11的解除绑定接口函数子模块112,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种多个窗口的绑定拖动方法,其特征在于,包括:
定义用于管理窗口的窗口管理类,并创建用于管理窗口之间位置关系的窗口管理类对象;
将两个以上窗口向所述窗口管理类对象进行注册,以使所述窗口管理类对象维护所述两个以上窗口之间的相对位置关系;
在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类;
所述窗口管理类,根据所述其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置;
在将两个以上窗口向所述窗口管理类对象进行注册之后,还包括:
向所述窗口管理类传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
2.根据权利要求1所述的多个窗口的绑定拖动方法,其特征在于,所述在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置传入所述窗口管理类,包括:
在接收到其中一个窗口移动的消息后,调用所述窗口管理类的改变窗口位置接口函数,将该窗口将要移动到的目标位置传入所述窗口管理类。
3.根据权利要求1所述的多个窗口的绑定拖动方法,其特征在于,所述在接收到其中一个窗口移动的消息后,将该窗口将要移动的偏移量传入所述窗口管理类,包括:
在接收到其中一个窗口移动的消息后,调用所述窗口管理类的改变窗口位置接口函数,将该窗口将要移动的偏移量传入所述窗口管理类。
4.根据权利要求1所述的多个窗口的绑定拖动方法,其特征在于,所述向所述窗口管理类传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,包括:
通过调用所述窗口管理类的窗口内容与窗口边界间隙维护接口函数,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量。
5.根据权利要求1所述的多个窗口的绑定拖动方法,其特征在于,还包括:
调用所述窗口管理类的解除绑定接口函数,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
6.根据权利要求1-5任一项所述的多个窗口的绑定拖动方法,其特征在于,定义的所述窗口管理类对外提供的接口函数包括:
窗口内容与窗口边界间隙维护接口函数,用于将两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量传入所述窗口管理类;
第一改变窗口位置接口函数,用于将一窗口将要移动到的目标位置传入所述窗口管理类;
第二改变窗口位置接口函数,用于将一窗口将要移动到的偏移量传入所述窗口管理类;
解除绑定接口函数,用于向所述窗口管理类传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
7.根据权利要求1-3任一项所述的多个窗口的绑定拖动方法,其特征在于,所述在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类,包括:
在接收到其中一个窗口移动的消息后,调用所述窗口管理类的ModifyWindowPos接口函数,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类。
8.根据权利要求4所述的多个窗口的绑定拖动方法,其特征在于,所述通过调用所述窗口管理类的窗口内容与窗口边界间隙维护接口函数,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,包括:
通过调用所述窗口管理类的UpdateWindowPadding接口函数,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量。
9.根据权利要求4所述的多个窗口的绑定拖动方法,其特征在于,所述调用所述窗口管理类的解除绑定接口函数,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系,包括:
调用所述窗口管理类的DetachWindow接口函数,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
10.一种多个窗口的绑定拖动装置,其特征在于,包括:
窗口管理类模块,用于创建用于管理窗口之间位置关系的窗口管理类对象;
注册模块,用于将两个以上窗口向所述窗口管理类对象进行注册,以使所述窗口管理类对象维护所述两个以上窗口之间的相对位置关系;
第一传入模块,用于在接收到其中一个窗口移动的消息后,将该窗口将要移动到的目标位置或要移动的偏移量传入所述窗口管理类模块;
所述窗口管理类模块,根据所述其中一个窗口的目标位置或要移动的偏移量,以及所述窗口管理类对象所维护的所述两个以上窗口之间的相对位置关系,计算出已经向所述窗口管理类对象注册的所有窗口的目标位置,并将已向所述窗口管理类对象注册的所有窗口从当前位置移动到目标位置;
所述窗口管理类模块包括窗口内容与窗口边界间隙维护接口函数子模块;其中
第二传入模块,用于通过调用所述窗口管理类模块的窗口内容与窗口边界间隙维护接口函数子模块,分别传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
11.根据权利要求10所述的多个窗口的绑定拖动装置,其特征在于,所述窗口管理类模块包括第一改变窗口位置接口函数子模块;其中
所述第一传入模块包括:
第一消息接收子模块,用于接收窗口移动的消息;
第一调用子模块,用于在所述第一消息接收子模块接收到其中一个窗口移动的消息后,调用所述窗口管理类模块的第一改变窗口位置接口函数子模块,将该窗口将要移动到的目标位置传入所述窗口管理类模块。
12.根据权利要求10所述的多个窗口的绑定拖动装置,其特征在于,所述窗口管理类模块包括第二改变窗口位置接口函数子模块;其中
所述第一传入模块包括:
第二消息接收子模块,用于接收窗口移动的消息;
第二调用子模块,用于在所述第二消息接收子模块接收到其中一个窗口移动的消息后,调用所述窗口管理类模块的第二改变窗口位置接口函数子模块,将该窗口将要移动的偏移量传入所述窗口管理类模块。
13.根据权利要求10所述的多个窗口的绑定拖动装置,其特征在于,还包括:
第二传入模块,用于向所述窗口管理类模块传入所述两个以上窗口的句柄,以及所述两个以上窗口中各个窗口的窗口内容与窗口边界之间的偏移量,以使所述窗口管理类对象维护每个窗口的相对位置关系。
14.根据权利要求10所述的多个窗口的绑定拖动装置,其特征在于,所述窗口管理类模块包括解除绑定接口函数子模块;其中
所述的窗口的绑定拖动装置还包括:
绑定解除模块,用于调用所述窗口管理类模块的解除绑定接口函数子模块,并传入要解除绑定拖动的窗口的句柄,以解除该窗口被所述窗口管理类对象所维护的位置关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410525145.3A CN104331236B (zh) | 2014-09-30 | 2014-09-30 | 一种多个窗口的绑定拖动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410525145.3A CN104331236B (zh) | 2014-09-30 | 2014-09-30 | 一种多个窗口的绑定拖动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104331236A CN104331236A (zh) | 2015-02-04 |
CN104331236B true CN104331236B (zh) | 2017-09-05 |
Family
ID=52405972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410525145.3A Active CN104331236B (zh) | 2014-09-30 | 2014-09-30 | 一种多个窗口的绑定拖动方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104331236B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484212B (zh) * | 2015-08-28 | 2019-08-20 | 北京新媒传信科技有限公司 | 一种实现多个窗口同步移动的方法和装置 |
WO2017110178A1 (ja) * | 2015-12-22 | 2017-06-29 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP6493329B2 (ja) * | 2016-07-29 | 2019-04-03 | 京セラドキュメントソリューションズ株式会社 | 電子機器及び画像形成装置 |
CN106293718B (zh) * | 2016-08-01 | 2019-12-17 | 北京金山安全管理系统技术有限公司 | 批量移动相邻窗口的方法和系统 |
CN109828804A (zh) * | 2018-12-11 | 2019-05-31 | 中新金桥数字科技(北京)有限公司 | 基于Android Pad程序内多窗口的保存与恢复方法及其系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211250A (zh) * | 2006-12-28 | 2008-07-02 | 三星电子株式会社 | 使用菜单集提供菜单的方法和使用该方法的多媒体装置 |
CN102436339A (zh) * | 2011-08-17 | 2012-05-02 | 北京数码大方科技有限公司 | 模式对话框的显示控制方法及装置 |
CN102566983A (zh) * | 2010-12-07 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 基于Windows系统的对象拖拽实现方法及其系统 |
CN103246430A (zh) * | 2013-04-24 | 2013-08-14 | 深圳市同洲电子股份有限公司 | 一种终端及多窗口管理方法 |
CN103365529A (zh) * | 2012-04-05 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 一种图标管理方法及移动终端 |
EP2869191A1 (en) * | 2013-10-31 | 2015-05-06 | Hisense Mobile Communications Technology Co., Ltd. | Window displaying method of mobile terminal and mobile terminal |
-
2014
- 2014-09-30 CN CN201410525145.3A patent/CN104331236B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211250A (zh) * | 2006-12-28 | 2008-07-02 | 三星电子株式会社 | 使用菜单集提供菜单的方法和使用该方法的多媒体装置 |
CN102566983A (zh) * | 2010-12-07 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 基于Windows系统的对象拖拽实现方法及其系统 |
CN102436339A (zh) * | 2011-08-17 | 2012-05-02 | 北京数码大方科技有限公司 | 模式对话框的显示控制方法及装置 |
CN103365529A (zh) * | 2012-04-05 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 一种图标管理方法及移动终端 |
CN103246430A (zh) * | 2013-04-24 | 2013-08-14 | 深圳市同洲电子股份有限公司 | 一种终端及多窗口管理方法 |
EP2869191A1 (en) * | 2013-10-31 | 2015-05-06 | Hisense Mobile Communications Technology Co., Ltd. | Window displaying method of mobile terminal and mobile terminal |
Also Published As
Publication number | Publication date |
---|---|
CN104331236A (zh) | 2015-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104331236B (zh) | 一种多个窗口的绑定拖动方法及装置 | |
KR102257262B1 (ko) | 적응형 사용자 인터페이스 창 관리자 | |
CN103616982B (zh) | 一种在触摸屏设备上新建文件夹的方法及触摸屏设备 | |
CN104750450A (zh) | 一种即时通信中的文件共享方法及终端 | |
US20160062613A1 (en) | Electronic device for copying and pasting objects and method thereof | |
CN103176789A (zh) | 一种实现开放平台功能扩展的方法及系统 | |
CN102436339A (zh) | 模式对话框的显示控制方法及装置 | |
CN104407865B (zh) | 窗口的显示方法及装置 | |
CN103106005A (zh) | 整理移动设备状态栏图标的方法和装置 | |
WO2008124793A3 (en) | Graphical user interface for electronic file sharing | |
CN103713828A (zh) | 一种两个桌面图标碰撞删除的方法 | |
CN103513977B (zh) | 一种群成员列表的展示方法和装置 | |
CN105843940A (zh) | 一种文件夹合并方法及装置 | |
CN106095240A (zh) | 一种文本框的显示方法及装置 | |
CN106020899A (zh) | 一种应用程序的下载方法及移动终端 | |
CN107506200A (zh) | 一种屏幕内容切换方法、终端及计算机可读存储介质 | |
CN105912420A (zh) | 一种数据备份方法及装置 | |
CN104049846A (zh) | 一种信息处理方法及电子设备 | |
CN104809534A (zh) | 业务流程管理系统 | |
CN103914223B (zh) | 终端应用界面的生成方法及装置 | |
CN103593114A (zh) | 一种页面展示方法及装置 | |
CN104391631A (zh) | 一种电子阅读器翻页的控制方法和系统 | |
CN102819421A (zh) | App应用的管理方法及系统 | |
CN101996063A (zh) | 一种快速关闭多个拼接墙窗口的方法 | |
CN105224575A (zh) | 一种文档显示方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190114 Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Patentee after: Zhuhai Seal Interest Technology Co., Ltd. Address before: 519070, six level 601F, 10 main building, science and technology road, Tangjia Bay Town, Zhuhai, Guangdong. Patentee before: Zhuhai Juntian Electronic Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |