CN110879677A - 一种窗口界面消息的管理方法以及相关设备 - Google Patents
一种窗口界面消息的管理方法以及相关设备 Download PDFInfo
- Publication number
- CN110879677A CN110879677A CN201811036798.XA CN201811036798A CN110879677A CN 110879677 A CN110879677 A CN 110879677A CN 201811036798 A CN201811036798 A CN 201811036798A CN 110879677 A CN110879677 A CN 110879677A
- Authority
- CN
- China
- Prior art keywords
- message
- interface
- window
- mouse
- target window
- 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.)
- Pending
Links
Images
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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例提供了一种窗口界面消息的管理方法及相关设备,用于管理窗口界面中的界面消息,以对窗口界面执行与界面消息对应的操作。本发明实施例方法包括:创建目标窗口界面;在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
Description
技术领域
本发明涉及界面领域,尤其涉及一种窗口界面消息的管理方法以及相关设备。
背景技术
窗口界面是指采用窗口形式显示计算机操作用户界面,是一种常见的常见的用户界面。在窗口中,根据各种数据/应用程序的内容设有窗口标题栏,一般放在窗口的最上方,并在其中设有最大化、最小化(隐藏窗口,并非消除数据)、最前面、缩进(仅显示窗口标题栏)等动作按钮,可以简单地对窗口进行操作。
用户可用鼠标来改变窗口的大小及其在桌面上的位置。因此,既可用鼠标来拖拽窗口边框或窗口角,以改变窗口的大小,又可利用最大化和最小化按钮或控制菜单,来将窗口最大化或最小化。
发明内容
本发明实施例提供了一种窗口界面消息的管理方法以及相关设备,用于管理窗口界面中的界面消息,以对窗口界面执行与界面消息对应的操作。
本发明实施例的第一方面提供了一种窗口界面消息的管理方法,包括:
创建目标窗口界面;
在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;
当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;
当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;
根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;
当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
可选地,所述根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作包括:
通过FramelessHelper2逻辑处理函数对所述鼠标消息的坐标信息进行判断,以确定所述鼠标是否移到所述目标窗口界面的窗口边框;
若是,则对所述鼠标消息的result地址进行赋值。
可选地,所述方法还包括:
在所述目标窗口界面对应的qml中添加包含数组以及互斥数组;
将所述目标窗口界面的窗口标题栏添加到所述包含数组,且将所述窗口标题栏中的关闭控件、最小化控件以及最大化控件添加到所述互斥数组。
可选地,所述根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作包括:
使用mapFromGlobal方法获取所述互斥数组中每个元素的第一全局坐标以及所述包含数组中每个元素的第二全局坐标;
根据所述坐标信息以及所述互斥数组中每个元素的第一全局坐标,判断所述鼠标是否移动至所述互斥数组对应的控件中;
若是,则将所述鼠标消息的result地址赋值为空;
根据所述坐标信息以及所述包含数组中每个元素的第二全局坐标,判断所述鼠标是否移动至所述包含数组对应的控件中;
若是,则将所述鼠标消息的result地址赋值为HTCAPTION。
可选地,所述在所述目标窗口界面执行与所述窗口消息对应的操作包括:
过滤所述窗口消息中的大小改变事件、窗口隐藏事件以及窗口显示事件对应的消息;
根据过滤后的所述窗口消息判断所述目标窗口界面是否最大化;
若是,则重新设置所述目标窗口界面的窗口显示坐标。
本申请实施例第二方面提供了一种窗口界面消息的管理装置,包括:
创建单元,用于创建目标窗口界面;
监听单元,用于在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;
判断单元,用于当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;
获取单元,用于当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;
第一操作单元,用于根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;
第二操作单元,用于当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
可选地,所述第一操作单元具体用于:
通过FramelessHelper2逻辑处理函数对所述鼠标消息的坐标信息进行判断,以确定所述鼠标是否移到所述目标窗口界面的窗口边框;
若是,则对所述鼠标消息的result地址进行赋值。
可选地,所述装置还包括:
添加单元,用于在所述目标窗口界面对应的qml中添加包含数组以及互斥数组;
所述添加单元,还用于将所述目标窗口界面的窗口标题栏添加到所述包含数组,且将所述窗口标题栏中的关闭控件、最小化控件以及最大化控件添加到所述互斥数组。
可选地,所述第一操作单元具体用于:
使用mapFromGlobal方法获取所述互斥数组中每个元素的第一全局坐标以及所述包含数组中每个元素的第二全局坐标;
根据所述坐标信息以及所述互斥数组中每个元素的第一全局坐标,判断所述鼠标是否移动至所述互斥数组对应的控件中;
若是,则将所述鼠标消息的result地址赋值为空;
根据所述坐标信息以及所述包含数组中每个元素的第二全局坐标,判断所述鼠标是否移动至所述包含数组对应的控件中;
若是,则将鼠标消息的result地址赋值为HTCAPTION。
可选地,所述第二操作单元具体用于:
过滤所述窗口消息中的大小改变事件、窗口隐藏事件以及窗口显示事件对应的消息;
根据过滤后的所述窗口消息判断所述目标窗口界面是否最大化;
若是,则重新设置所述目标窗口界面的窗口显示坐标。
本发明第三方面提供了一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如上述任意一项所述的窗口界面消息的管理方法的步骤。
本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如上述任意一项所述的窗口界面消息的管理方法的步骤。
综上所述,可以看出本申请实施例中,创建目标窗口界面;在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;判断所述目标窗口界面对应的界面消息的类型;当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。由此可以看出,本申请中,可以对窗口界面中的界面消息进行管理,以对窗口界面执行与界面消息对应的操作,例如对窗口界面的缩放、最大化、最小化以及拖动等操作。
附图说明
图1为本发明实施例提供的一种窗口界面消息的管理方法的流程示意图;
图2为本发明实施例提供的一种窗口界面消息的管理装置的实施例示意图;
图3为本发明实施例提供的一种窗口界面消息的管理装置的硬件结构示意图;
图4为本发明实施例提供的一种电子设备的实施例示意图;
图5为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
具体实施方式
本发明实施例提供了一种窗口界面消息的管理方法以及相关设备,用于管理窗口界面中的界面消息,以对窗口界面执行与界面消息对应的操作。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
下面从窗口界面消息的管理装置的角度对窗口界面消息的管理方法进行说明,该窗口界面消息的管理装置可以是服务器,也可以是服务器中的服务单元,具体不做限定。
请参阅图1,图1为本发明实施例提供的窗口界面消息的管理方法的一个实施例示意图,具体包括:
101、创建目标窗口界面。
本实施例中,可以创建目标窗口界面,所述目标窗口界面可以通过下述方式来实现:
1、创建窗口对象Qt,并使窗口对象继承QQuickView并实例化;
2、设置窗口对象Qt的窗口属性,如设置窗口属性为无边框风格以及显示窗口阴影等等属性;
3、使用win32api显示窗口阴影,程序实现如下:
const MARGINS shadow={1,1,1,1};
DwmExtendFrameIntoClientArea(hwnd,&shadow);
4、初始化FramelessQuickView,将FramelessWindow作为父窗口,并绑定窗口退出信号到FramelessWindow的窗口退出时间;
5、在Qt中创建一个QQmlApplicationEngine引擎对象,用于解析和创建ui界面控件,程序实现如下:
m_engine=new QQmlApplicationEngine(this),
其中,所述m_engine为引擎对象,QQmlApplicationEngine为引擎,this是QQmlApplicationEngine的父类;
6:获取QQmlApplicationEngine对象中的QQmlContext地址,用于绑定Qt中的对象,程序实现如下:
QQmlContext*context=m_engine->rootContext(),
其中,所述QQmlContext*context是qml文件的上下文,rootContext()是获取Context根节点上下文的调用方法;
7:设置预设的qml文件路径,实现如下:
context->setContextPdoperty("_app_path",appPath),
其中,context->setContextPdoperty为调用文件路径的方法,appPath为窗口对象中主窗口文件路径,通过该路径来加载窗口界面中的所有ui界面控件。
102、在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息。
本实施例中,在创建完成目标窗口界面之后,可以通过在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到目标窗口界面对应的界面消息。也就是说,可以通过监听消息回调函数message以判断是否接收到目标窗口界面对应的界面消息,当接收到时,执行步骤103.
103、当消息回调函数message接收到目标窗口对应的界面消息时,判断目标窗口界面对应的界面消息的类型。
本实施例中,当监听到消息回调函数message接收到目标窗口对应的界面消息时,可以判断该目标窗口对应的界面消息的类型,例如是鼠标对应的鼠标消息还是窗口消息。
104、当目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取鼠标消息的坐标信息。
本实施例中,当确定目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,可以获取该鼠标消息的坐标信息。也即可以获取鼠标的x,y坐标信息。
105、根据鼠标消息的坐标信息在目标窗口界面执行与鼠标消息对应的操作。
本实施例中,当获取到鼠标的x,y坐标信息之后,可以根据该坐标信息在目标窗口执行与鼠标消息对应的操作。具体的,该鼠标消息可以包括两个类型,第一、对目标窗口界面的窗口边框的拖动操作;第二、对目标窗口标题栏的拖动操作,下面分别进行说明:
1、对目标窗口界面边框的拖动操作;
通过FramelessHelper2逻辑处理函数对鼠标消息的坐标信息进行判断,以确定鼠标是否移到目标窗口界面的窗口边框;
若是,则对鼠标消息的result地址进行赋值。
本实施例中,当鼠标移动到目标窗口界面的窗口时,就会发送该鼠标消息,之后消息回调函数收到消息时,获取鼠标的x,y坐标信息,使用FramelessHelper2逻辑处理函数对该坐标信息进行处理,具体处理过程如下:
x>=rect.left&&x<rect.left+m_borderWidth判断鼠标是否移入目标窗口界面的窗口左边框,并将鼠标消息的result地址赋值为HTLEFT;
x<rect.right&&x>=rect.right-m_borderWidth判断鼠标是否移入目标窗口界面的窗口右边框,并将鼠标消息的result地址赋值为HTRIGHT;
y>=rect.top&&y<rect.top+m_borderWidth判断鼠标是否移入目标窗口界面的窗口上边框,并将鼠标消息的result地址赋值为HTTOP;
y<rect.bottom&&y>=rect.bottom-m_borderWidth判断鼠标是否移入目标窗口界面的窗口下边框,并将鼠标消息的result地址赋值为HTBOTTOM;
x>=rect.left&&x<rect.left+m_borderWidth&&y<rect.bottom&&y>=rect.bottom-m_borderWidth判断鼠标是否移入目标窗口界面的左下角,并将鼠标消息的result地址赋值为HTBOTTOMLEFT;
x<rect.right&&x>=rect.right-m_borderWidth&&y<rect.bottom&&y>=rect.bottom-m_borderWidth判断鼠标是否移入目标窗口界面的右下角,并将鼠标消息的result地址赋值为HTBOTTOMRIGHT;
x>=rect.left&&x<rect.left+m_borderWidth&&y>=rect.top&&y<rect.top+m_borderWidth判断鼠标是否移入目标窗口界面的左上角,并将鼠标消息的result地址赋值为HTTOPLEFT;
x<rect.right&&x>=rect.right-m_borderWidth&&y>=rect.top&&y<rect.top+m_borderWidth判断鼠标是否移入目标窗口界面的右上角,并将鼠标消息的result地址赋值为HTTOPRIGHT。可以理解的上述所说的将鼠标消息的result地址赋值,是为了使得系统底层根据鼠标消息的不同赋值进行不同操作,例如鼠标移动目标窗口界面的右上角,将鼠标消息的result地址赋值为HTTOPRIGHT,是为了对拖动目标窗口界面的右上角对目标窗口界面进行放大或缩小。
2、对窗口标题栏的拖动操作。
可以理解的是,由于目标窗口界面的窗口标题栏是可以拖动处理,因此需要将窗口标题栏添加到包含数组中,而窗口标题栏中的关闭控件、最小化控件以及最大化控件是不需要拖动,因此需要将控件添加到互斥数组中,也就是说,包含数组中的元素是可以拖动处理的,而互斥数组中的元素是不可以拖动处理的,因此,可以在创建目标窗口界面时,即在qml中添加包含数组以及互斥数组,并将上述所述的各个元素分别添加进去:
在目标窗口界面对应的qml中添加包含数组以及互斥数组;
将目标窗口界面的窗口标题栏添加到包含数组,且将窗口标题栏中的关闭控件、最小化控件以及最大化控件添加到互斥数组。
因此,对目标窗口界面的拖动操作处理可以基于鼠标信息与包含数组以及互斥数组中的元素的具体位置来执行,具体如下:
使用mapFromGlobal方法获取互斥数组中每个元素的第一全局坐标以及包含数组中每个元素的第二全局坐标;
根据坐标信息以及互斥数组中每个元素的第一全局坐标,判断鼠标是否移动至互斥数组对应的控件中;
若是,则对所述鼠标消息的result地址赋值为空。
根据坐标信息以及包含数组中每个元素的第二全局坐标,判断鼠标是否移动至包含数组对应的控件中;
若是,则对所述鼠标消息的result地址赋值为HTCAPTION。
也就是说,在接收到鼠标的x,y坐标之后,可以遍历互斥数组以及包含数组中的每个元素,并通过mapFromGlobal方法获取互斥数组中每个元素的第一全局坐标以及包含数组中每个元素的第二全局坐标,之后,可以使用contains方法将互斥数组中每个元素的第一全局坐标以及包含数组中每个元素的第二全局坐标与鼠标的x,y坐标进行匹配,以判断该鼠标的具体位置,在互斥数组对应的控件上,还是在包含数组对应的控件上,当鼠标在互斥数组对应的控件上时,则对鼠标消息的result赋值为空,也就是说在鼠标在互斥数组中的控件上,即不能对目标窗口界面进行拖动,当鼠标在包含数组对应的控件上时,则对鼠标消息的result地址赋值为HTCAPTION,也就是可以对目标窗口界面进行拖动。
可以理解的上述所说的将鼠标消息的result地址赋值HTCAPTION,是为了使得系统底层根据鼠标消息的HTCAPTION赋值拖动目标窗口界面移动。
106、当目标窗口界面对应的界面消息为窗口消息时,在目标窗口界面执行与窗口消息对应的操作。
本实施例中,当确定目标窗口界面对应的界面消息为窗口消息时,可以过滤窗口消息中的窗口大小改变事件、窗口隐藏事件以及窗口显示事件对应的消息;并根据过滤后的窗口消息判断目标窗口界面是否最大化;若是,则重新设置目标窗口界面的窗口显示坐标。
具体的,由于窗口消息可以包括多种与窗口大小改变事件无关的消息,例如窗口大小改变事件对应的消息消息、窗口隐藏事件对应的窗口消息以及窗口显示事件对应的窗口消息,因此需要将上述窗口消息过滤,例如可以通过重写QWindow event(QEvent*e)虚函数来过滤窗口消息中的非最大化消息,得到窗口最大化事件对应的窗口消息,并根据该过滤后的窗口消息判断窗口界面是否最大化,例如可以通过API(Application ProgrammingInterface,应用程序编程接口)IsZoomed(msg->hwnd)来判断目标窗口界面是否最大化,当确定该目标窗口界面最大化时,可以重新设置目标窗口界面的窗口显示坐标,编程如下:
x+=m_margins.left();
y+=m_margins.top();
w-=(m_margins.left()+m_margins.right());
h-=(m_margins.top()+m_margins.top())。
需要说明的是,当确定目标窗口界面最大化时,还可以获取目标窗口界面的边框阴影大小并保存。同时,当确定目标窗口界面不是最大化时,还可以将目标窗口界面的阴影大小设备为默认值0.
综上所述,本申请实施例中,可以对窗口界面中的界面消息进行管理,该界面消息包括鼠标消息以及窗口消息,通过对鼠标消息的result地址进行不同的赋值来实现鼠标消息对目标窗口界面的操作,例如对窗口界面的缩放、拖动等操作,通过过滤界面消息中的非窗口最大化事件对应的消息,得到窗口最大化事件对应的消息,并重新设置目标窗口界面的界面显示坐标,以实现目标窗口界面的最大化。
上面对本发明实施例中窗口界面消息的管理方法进行了描述,下面对本发明实施例中的窗口界面消息的管理装置进行描述。
请参阅图2,本发明实施例中窗口界面消息的管理装置的一个实施例,该窗口界面消息的管理装置应用于直播平台,包括:
创建单元201,用于创建目标窗口界面;
监听单元202,用于在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;
判断单元203,用于当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;
获取单元204,用于当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;
第一操作单元205,用于根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;
第二操作单元206,用于当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
可选地,所述第一操作单元205具体用于:
通过FramelessHelper2逻辑处理函数对所述鼠标消息的坐标信息进行判断,以确定所述鼠标是否移到所述目标窗口界面的窗口边框;
若是,则对所述鼠标消息的result地址进行赋值。
可选地,所述装置还包括:
添加单元207,用于在所述目标窗口界面对应的qml中添加包含数组以及互斥数组;
所述添加单元207,还用于将所述目标窗口界面的窗口标题栏添加到所述包含数组,且将所述窗口标题栏中的关闭控件、最小化控件以及最大化控件添加到所述互斥数组。
可选地,所述第一操作单元205具体用于:
使用mapFromGlobal方法获取所述互斥数组中每个元素的第一全局坐标以及所述包含数组中每个元素的第二全局坐标;
根据所述坐标信息以及所述互斥数组中每个元素的第一全局坐标,判断所述鼠标是否移动至所述互斥数组对应的控件中;
若是,则将所述鼠标消息的result地址赋值为空;
根据所述坐标信息以及所述包含数组中每个元素的第二全局坐标,判断所述鼠标是否移动至所述包含数组对应的控件中;
若是,则将所述鼠标消息的result地址赋值为HTCAPTION。
可选地,所述第二操作单元206具体用于:
过滤所述窗口消息中的大小改变事件、窗口隐藏事件以及窗口显示事件对应的消息;
根据过滤后的所述窗口消息判断所述目标窗口界面是否最大化;
若是,则重新设置所述目标窗口界面的窗口显示坐标。
综上所述,本申请实施例中,可以对窗口界面中的界面消息进行管理,该界面消息包括鼠标消息以及窗口消息,通过对鼠标消息的result地址进行不同的赋值来实现鼠标消息对目标窗口界面的操作,例如对窗口界面的缩放、拖动等操作,通过过滤界面消息中的非窗口最大化事件对应的消息,得到窗口最大化事件对应的消息,并重新设置目标窗口界面的界面显示坐标,以实现目标窗口界面的最大化。
上面图2从模块化功能实体的角度对本发明实施例中的窗口界面消息的管理装置进行了描述,下面从硬件处理的角度对本发明实施例中的窗口界面消息的管理装置进行详细描述,请参阅图3,本发明实施例中的窗口界面消息的管理装置300一个实施例,包括:
输入装置301、输出装置302、处理器303和存储器304(其中处理器303的数量可以一个或多个,图3中以一个处理器303为例)。在本发明的一些实施例中,输入装置301、输出装置302、处理器303和存储器304可通过总线或其它方式连接,其中,图3中以通过总线连接为例。
其中,通过调用存储器304存储的操作指令,处理器303,用于执行如下步骤:
创建目标窗口界面;
在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;
当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;
当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;
根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;
当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
在具体实施过程中,通过调用存储器304存储的操作指令,处理器303可以实现图1对应的实施例中任一实施方式。
请参阅图4,图4为本发明实施例提供的电子设备的实施例示意图。
如图4所示,本发明实施例提供了一种电子设备,包括存储器410、处理器420及存储在存储器420上并可在处理器420上运行的计算机程序411,处理器420执行计算机程序411时实现以下步骤:
创建目标窗口界面;
在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;
当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;
当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;
根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;
当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
在具体实施过程中,处理器420执行计算机程序411时,可以实现图1对应的实施例中任一实施方式。
由于本实施例所介绍的电子设备为实施本发明实施例中一种窗口界面消息的管理装置所采用的设备,故而基于本发明实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍,只要本领域所属技术人员实施本发明实施例中的方法所采用的设备,都属于本发明所欲保护的范围。
请参阅图5,图5为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
如图5所示,本实施例提供了一种计算机可读存储介质500,其上存储有计算机程序511,该计算机程序511被处理器执行时实现如下步骤:
创建目标窗口界面;
在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;
当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;
当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;
根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;
当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
在具体实施过程中,该计算机程序511被处理器执行时可以实现图1对应的实施例中任一实施方式。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,当计算机软件指令在处理设备上运行时,使得处理设备执行如图1对应实施例中的风电场数字化平台设计的方法中的流程。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修该,或者对其中部分技术特征进行等同替换;而这些修该或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种窗口界面消息的管理方法,其特征在于,包括:
创建目标窗口界面;
在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;
当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;
当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;
根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;
当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作包括:
通过FramelessHelper2逻辑处理函数对所述鼠标消息的坐标信息进行判断,以确定所述鼠标是否移到所述目标窗口界面的窗口边框;
若是,则对所述鼠标消息的result地址进行赋值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标窗口界面对应的qml中添加包含数组以及互斥数组;
将所述目标窗口界面的窗口标题栏添加到所述包含数组,且将所述窗口标题栏中的关闭控件、最小化控件以及最大化控件添加到所述互斥数组。
4.根据权利要求3所述的方法,其特征在于,所述根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作包括:
使用mapFromGlobal方法获取所述互斥数组中每个元素的第一全局坐标以及所述包含数组中每个元素的第二全局坐标;
根据所述坐标信息以及所述互斥数组中每个元素的第一全局坐标,判断所述鼠标是否移动至所述互斥数组对应的控件中;
若是,则将所述鼠标消息的result地址赋值为空;
根据所述坐标信息以及所述包含数组中每个元素的第二全局坐标,判断所述鼠标是否移动至所述包含数组对应的控件中;
若是,则将所述鼠标消息的result地址赋值为HTCAPTION。
5.根据权利要求1所述的方法,其特征在于,所述在所述目标窗口界面执行与所述窗口消息对应的操作包括:
过滤所述窗口消息中的大小改变事件、窗口隐藏事件以及窗口显示事件对应的消息;
根据过滤后的所述窗口消息判断所述目标窗口界面是否最大化;
若是,则重新设置所述目标窗口界面的窗口显示坐标。
6.一种窗口界面消息的管理装置,其特征在于,包括:
创建单元,用于创建目标窗口界面;
监听单元,用于在FramelessWindow重写nativeEvent虚函数以监听消息回调函数message是否接收到所述目标窗口界面对应的界面消息;
判断单元,用于当所述消息回调函数message接收到所述目标窗口对应的界面消息时,判断所述目标窗口界面对应的界面消息的类型;
获取单元,用于当所述目标窗口界面对应的界面消息为鼠标触发的鼠标消息时,获取所述鼠标消息的坐标信息;
第一操作单元,用于根据所述鼠标消息的坐标信息在所述目标窗口界面执行与所述鼠标消息对应的操作;
第二操作单元,用于当所述目标窗口界面对应的界面消息为窗口消息时,在所述目标窗口界面执行与所述窗口消息对应的操作。
7.根据权利要求6所述的装置,其特征在于,所述第一操作单元具体用于:
通过FramelessHelper2逻辑处理函数对所述鼠标消息的坐标信息进行判断,以确定所述鼠标是否移到所述目标窗口界面的窗口边框;
若是,则对所述鼠标消息的result地址进行赋值。
8.根据权利要求6所述的装置,其特征在于,所述第二操作单元具体用于:
过滤所述窗口消息中的大小改变事件、窗口隐藏事件以及窗口显示事件对应的消息;
根据过滤后的所述窗口消息判断所述目标窗口界面是否最大化;
若是,则重新设置所述目标窗口界面的窗口显示坐标。
9.一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如权利要求1至5中任意一项所述的窗口界面消息的管理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如权利要求1至5中任意一项所述的窗口界面消息的管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811036798.XA CN110879677A (zh) | 2018-09-06 | 2018-09-06 | 一种窗口界面消息的管理方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811036798.XA CN110879677A (zh) | 2018-09-06 | 2018-09-06 | 一种窗口界面消息的管理方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110879677A true CN110879677A (zh) | 2020-03-13 |
Family
ID=69727208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811036798.XA Pending CN110879677A (zh) | 2018-09-06 | 2018-09-06 | 一种窗口界面消息的管理方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110879677A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110889A (zh) * | 2021-04-16 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 全局消息提示方法、全局消息提示装置、介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030110307A1 (en) * | 1996-11-08 | 2003-06-12 | Mario E. De Armas | Method and apparatus for software technology injection for operating systems which assign separate process address spaces |
US20110173618A1 (en) * | 2004-09-30 | 2011-07-14 | Lee George Laborczfalvi | Method and apparatus for moving processes between isolation environments |
CN102566983A (zh) * | 2010-12-07 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 基于Windows系统的对象拖拽实现方法及其系统 |
CN103425388A (zh) * | 2012-05-24 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 一种操作html页面宿主窗口的方法和装置 |
-
2018
- 2018-09-06 CN CN201811036798.XA patent/CN110879677A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030110307A1 (en) * | 1996-11-08 | 2003-06-12 | Mario E. De Armas | Method and apparatus for software technology injection for operating systems which assign separate process address spaces |
US20110173618A1 (en) * | 2004-09-30 | 2011-07-14 | Lee George Laborczfalvi | Method and apparatus for moving processes between isolation environments |
CN102566983A (zh) * | 2010-12-07 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 基于Windows系统的对象拖拽实现方法及其系统 |
CN103425388A (zh) * | 2012-05-24 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 一种操作html页面宿主窗口的方法和装置 |
Non-Patent Citations (3)
Title |
---|
一去、二三里: "QT之自定义界面(添加自定义标题栏)", 《HTTPS://BLOG.CSDN.NET/LIANG19890820/ARTICLE/DETAILS/50555298》 * |
一去、二三里: "Qt之自定义界面(窗体缩放)", 《HTTPS://BLOG.CSDN.NET/LIANG19890820/ARTICLE/DETAILS/50557057》 * |
自然兰亭: "【Qt】Qt之自定义界面(窗体缩放)【转】", 《HTTPS://BLOG.CSDN.NET/MZY666888/ARTICLE/DETAILS/50715052》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110889A (zh) * | 2021-04-16 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 全局消息提示方法、全局消息提示装置、介质及电子设备 |
CN113110889B (zh) * | 2021-04-16 | 2023-12-05 | 北京沃东天骏信息技术有限公司 | 全局消息提示方法、全局消息提示装置、介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11385786B2 (en) | Spin control user interface for selecting options | |
US11316896B2 (en) | Privacy-preserving user-experience monitoring | |
US9053577B2 (en) | Reflecting values for a metric in a display | |
CN109445785A (zh) | 流程工具创建方法、装置及计算机存储介质 | |
US20150040017A1 (en) | Generating a visual representation | |
CN106502760B (zh) | 一种虚拟机亲和性策略可视化的方法及装置 | |
CN107766310B (zh) | 一种网格单元格编辑方法及装置 | |
CN108038894B (zh) | 动画创建方法、装置、电子设备及计算机可读存储介质 | |
US11567628B2 (en) | Cognitive composition of multi-dimensional icons | |
US20150128053A1 (en) | Resizing resource allocation in a computing environment | |
CN108897496B (zh) | 磁盘阵列配置管理方法、装置、计算机设备及存储介质 | |
CN110119299A (zh) | 信息显示方法及设备 | |
EP3374869A1 (en) | Hierarchical positioned event dispatch | |
CN108255989A (zh) | 图片存储方法、装置、终端设备及计算机存储介质 | |
US10324759B1 (en) | Apparatus and method of securely and efficiently interfacing with a cloud computing service | |
CN108228126B (zh) | 投屏控制方法、装置、电子终端及可读存储介质 | |
CN110879677A (zh) | 一种窗口界面消息的管理方法以及相关设备 | |
US20130232185A1 (en) | Managing distributed applications using structural diagrams | |
CN116028026B (zh) | 一种基于插件的研发过程管理方法、装置及存储介质 | |
US20150143289A1 (en) | Automatic check box interaction | |
CN111949180A (zh) | 图标整理方法、装置、存储介质及电子设备 | |
US10795540B2 (en) | Visualizing migration of a resource of a distributed computing environment | |
EP2365434B1 (en) | Method for accessing user interface elements of running third party applications on symbian based mobile device | |
US10620982B2 (en) | Multi-target deployment of virtual systems | |
CN112579082A (zh) | 交互状态数据的建立方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200313 |