CN108228036A - 一种windows中窗口菜单的实现方法及装置 - Google Patents
一种windows中窗口菜单的实现方法及装置 Download PDFInfo
- Publication number
- CN108228036A CN108228036A CN201611135903.6A CN201611135903A CN108228036A CN 108228036 A CN108228036 A CN 108228036A CN 201611135903 A CN201611135903 A CN 201611135903A CN 108228036 A CN108228036 A CN 108228036A
- Authority
- CN
- China
- Prior art keywords
- menu
- window
- main
- menu item
- drafting
- 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.)
- Granted
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
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
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
本发明公开一种windows中窗口菜单的实现方法及装置,所述方法包括:创建主窗口,并将所述主窗口设置为层窗口属性;接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口;继承主窗口实现菜单窗口;在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数;获取所述N个菜单项中每个菜单项对应的菜单内容信息,并根据所述菜单内容信息显示所述N个菜单项。本申请提供的方法和装置可以解决现有技术中windows的窗口菜单实现方式,存在的形式单一,不能符合用户个性化需求的技术问题。实现了提高窗口菜单的丰富性及灵活性的技术效果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种windows中窗口菜单的实现方法及装置。
背景技术
当前,随着网络技术的发展,各种不同类型及风格的应用程序层出不穷,由于各种应用程序的交互界面风格及需要的交互界面类型各不相同,对应用程序窗口菜单的要求也不相同。
在windows桌面程序开发中经常使用到菜单,windows自身也提供了菜单的相关操作,然而windows原生的菜单使用中有很大的局限性,菜单样式难以控制,菜单项里面也难以嵌入操作。例如,现有Window窗口限制必须有背景颜色,而且所述背景颜色还不能支持透明度的混合效果。因此背景透明的效果很难实现。如果直接使用***接口SetLayeredWindowAttributes设置透明属性,则不仅窗口透明,窗口里面的控件、文字等全部内容也跟着变成透明的。
可见,现有技术中windows的窗口菜单实现方式,存在形式单一,不能符合用户个性化需求的技术问题。
发明内容
本发明提供一种windows中窗口菜单的实现方法及装置,用以解决现有技术中windows的窗口菜单实现方式,存在的形式单一,不能符合用户个性化需求的技术问题。
第一方面,本发明提供了一种windows中窗口菜单的实现方法,包括:
创建主窗口,并将所述主窗口设置为层窗口属性;
接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口;
继承所述主窗口实现菜单窗口;
在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数;
获取所述N个菜单项中每个菜单项对应的菜单内容信息,并根据所述菜单内容信息显示所述N个菜单项。
可选的,所述创建主窗口,并将所述主窗口设置为层窗口属性,包括:采用create函数创建所述主窗口;设置所述主窗口的属性为WS_EX_LAYERED属性。
可选的,所述接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口,包括:接收作用于所述主窗口的第一绘制操作;基于所述第一绘制操作,获取与所述第一绘制操作对应的主绘制内容信息,并将所述主绘制内容信息存储在内存中;将所述内存中存储的所述主绘制内容信息刷新显示至所述主窗口。
可选的,所述主绘制内容信息为带透明度通道值的信息,以使所述主绘制内容信息对应的显示内容的透明度能独立于所述主窗口设置。
可选的,所述在所述菜单窗口上创建N个菜单项,包括:接收用于在所述菜单窗口上的指定N个位置的指定操作;基于所述指定操作,获取所述N个位置的N个位置信息;基于所述N个位置信息,在所述N个位置创建并显示所述N个菜单项。
可选的,所述在所述N个位置创建并显示所述N个菜单项,包括:通过TrackPopupMenu函数,在所述N个位置创建并显示所述N个菜单项。
可选的,所述根据所述菜单内容信息显示所述N个菜单项之后,还包括:接收作用在所述菜单窗口上的第一位置的选择操作;基于所述选择操作生成携带有所述第一位置对应的位置描述信息的选择消息;根据所述位置描述信息,从所述N个菜单项中确定出与所述第一位置对应的第一菜单项;所述菜单窗口传递所述选择消息至所述第一菜单项;所述第一菜单项响应所述选择消息。
第二方面,本发明还提供了一种windows中窗口菜单的实现装置,包括:
主创建模块,用于创建主窗口,并将所述主窗口设置为层窗口属性;
主绘制模块,用于接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口;
继承模块,用于继承所述主窗口实现菜单窗口;
菜单创建模块,用于在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数;
菜单绘制模块,用于获取所述N个菜单项中每个菜单项对应的菜单内容信息,并根据所述菜单内容信息显示所述N个菜单项。
可选的,所述菜单创建模块还用于:接收用于在所述菜单窗口上的指定N个位置的指定操作;基于所述指定操作,获取所述N个位置的N个位置信息;基于所述N个位置信息,在所述N个位置创建并显示所述N个菜单项。
可选的,所述装置还包括响应模块,所述响应模块用于:接收作用在所述菜单窗口上的第一位置的选择操作;基于所述选择操作生成携带有所述第一位置对应的位置描述信息的选择消息;根据所述位置描述信息,从所述N个菜单项中确定出与所述第一位置对应的第一菜单项;所述主窗口传递所述选择消息至所述第一菜单项;所述第一菜单项响应所述选择消息。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的方法及装置,通过创建层窗口属性的主窗口,再继承所述主窗口实现菜单窗口,再以所述菜单窗口的自定义类的形式在所述菜单窗口上创建菜单项,从而实现所述主窗口上的绘制内容及所述菜单窗口中的菜单项均能独立于所述主窗口来设置显示属性,且由于所述菜单项为自定义类,故还可以在所述菜单项中自定义设置交互控件UI,有效的增加了窗口菜单的可自制性,使用户能按照自身需求设置所述窗口菜单,提高了窗口菜单的丰富性及灵活性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中windows中窗口菜单的实现方法的流程图;
图2为本发明实施例中windows中窗口菜单的实现装置的结构示意图。
具体实施方式
本申请实施例通过提供一种windows中窗口菜单的实现方法及装置,用以解决现有技术中windows的窗口菜单实现方式,存在的形式单一,不能符合用户个性化需求的技术问题。实现了提高窗口菜单的丰富性及灵活性的技术效果。
本申请实施例中的技术方案,总体思路如下:
创建主窗口,并将所述主窗口设置为层窗口属性;接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口;继承所述主窗口实现菜单窗口;在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数;获取所述N个菜单项中每个菜单项对应的菜单内容信息,并根据所述菜单内容信息显示所述N个菜单项。
上述方法通过创建层窗口属性的主窗口,再继承所述主窗口实现菜单窗口,再以所述菜单窗口的自定义类的形式在所述菜单窗口上创建菜单项,从而实现所述主窗口上的绘制内容及所述菜单窗口中的菜单项均能独立于所述主窗口来设置显示属性,且由于所述菜单项为自定义类,故还可以在所述菜单项中自定义设置交互控件UI,有效的增加了窗口菜单的可自制性,使用户能按照自身需求设置所述窗口菜单,提高了窗口菜单的丰富性及灵活性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供一种windows中窗口菜单的实现方法,如图1所示,所述方法包括:
步骤S101,创建主窗口,并将所述主窗口设置为层窗口属性;
步骤S102,接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口;
步骤S103,继承所述主窗口实现菜单窗口;
步骤S104,在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数;
步骤S105,获取所述N个菜单项中每个菜单项对应的菜单内容信息,并根据所述菜单内容信息显示所述N个菜单项。
下面结合图1,对本申请提供的windows中窗口菜单的实现方法进行详细介绍:
首先,执行步骤S101,创建主窗口,并将所述主窗口设置为层窗口属性。
在本申请实施例中,所述创建主窗口,并将所述主窗口设置为层窗口属性,包括:
采用create函数创建所述主窗口;
设置所述主窗口的属性为WS_EX_LAYERED属性。
需要说明的是,为所述主窗口指定WS_EX_LAYERED属性后,***的自绘消息WM_PAINT将失去作用,故可以采用自定义的方法绘制所述主窗口。
具体来讲,创建所述主窗口是通过继承CWnd类实现一层窗口,也就是设置所述主窗口为WS_EX_LAYERED属性,同时可以去掉原创建层窗口默认的边框和标题栏,得到完全可定制的空白主窗口。
在具体实施过程中,所述主窗口的关闭可以通过WM_CLOSE消息,由于需要在窗口切换到非活动状态时关闭窗口,因此需要在WM_NCACTIVATE消息处理中关闭所述主窗口。
再下来,执行步骤S102,接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口。
在本申请实施例中,所述接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口,包括:
接收作用于所述主窗口的第一绘制操作;
基于所述第一绘制操作,获取与所述第一绘制操作对应的主绘制内容信息,并将所述主绘制内容信息存储在内存中;
将所述内存中存储的所述主绘制内容信息刷新显示至所述主窗口。
进一步,所述主绘制内容信息为带透明度通道值的信息,以使所述主绘制内容信息对应的显示内容的透明度能独立于所述主窗口设置。
在本申请实施例中,可以采用窗口绘制方法DrawWindow,在DrawWindow方法中,自定义在所述主窗口上绘制主绘制内容信息到内存DC上,然后通过***API函数UpdateLayeredWindow将内存DC中的内容刷新到所述主窗口上,因为所述主窗口为层窗口,故支持窗口透明度,亮度,色彩,形状等自定义效果,因此所述主窗口可以实现自由绘制外观的效果。
以对透明度的自定义为例,在内存DC上绘制的图片,文字或者涂色,只要是带有透明度alpha通道值的,都可以独立保留其alpha属性显示到所述主窗口上,如此,所述主窗口支持alpha混合后,可以任意调整所述主窗口中各个区域或元素的alpha值,以实现对所述主窗口整体和各绘制内容的透明度的分别控制。例如,可以实现所述主窗口背景透明但是里面的内容正常显示的效果;也可以实现所述主窗口背景全透明但是里面的内容部分半透明,另一部分不透明显示的效果,在此不再一一列举。
当然,在具体实施过程中,也不限于透明度,例如:还可以把所述主窗口的亮度调低,把所述主窗口上绘制的全部或部分内容调亮,或者,把所述主窗口的色彩值调为渐变色,把所述主窗口上绘制的全部或部分调为单色,或者,把所述主窗口调为透明,设置所述主窗口上背景图片为不透明,则所述菜单整体形状显示为所述背景图片上绘制的形状,则可以实现通过背景图片设置菜单的形状,在此不再一一列举。
具体来讲,可以利用***API函数UpdateLayeredWindow实现窗口绘制的函数,在需要窗口刷新的时候调用绘制函数。如此一来整个窗口的绘制流程将不再受***默认的窗口绘制方法影响。下面,同样以对透明度的自定义为例,可以通过下面的函数来绘制所述主窗口:
其中,调用UpdateLeveredWindow函数时将BLENDFUNCTION参数中AlphaFormart设置为AC_SRC_ALPHA属性,就可以在混合时是保留原图片的透明效果。
然后,执行步骤S103,继承所述主窗口实现菜单窗口。
具体来讲,是继承所述主窗口来实现所述菜单窗口,由所述菜单窗口统一管理菜单的创建,关闭,绘制,消息分发和点击响应等功能。
在具体实施过程中,所述菜单窗口的关闭功能可以通过所述主窗口中设置的失去焦点关闭窗口的功能来实现。
在创建了所述菜单窗口后,需要对所述菜单窗口进行绘制,具体是在绘制玩所述主窗口的背景效果后,逐个菜单项的获取N个所述菜单窗口菜自定义绘制的绘制内容,然后按照预设的坐标关系整合成一幅整体画面。因为是在层窗口模式的主窗口中实现的绘制,因此所述菜单窗口的透明属性或亮度属性等也可以随意控制,也支持alpha颜色参数的使用,可以随意改变窗口背景透明图。
然后执行步骤S104,在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数。
在本申请实施例中,所述在所述菜单窗口上创建N个菜单项,包括:
接收用于在所述菜单窗口上的指定N个位置的指定操作;
基于所述指定操作,获取所述N个位置的N个位置信息;
基于所述N个位置信息,在所述N个位置创建并显示所述N个菜单项。
进一步,所述在所述N个位置创建并显示所述N个菜单项,包括:
通过TrackPopupMenu函数,在所述N个位置创建并显示所述N个菜单项。
具体来讲,由所述菜单窗口统一管理菜单项的创建,关闭,绘制,消息分发和点击响应等功能。
在本申请实施例中,所述菜单项对操作的响应是通过所述菜单窗口传递的,具体为:
接收作用在所述菜单窗口上的第一位置的选择操作;
基于所述选择操作生成携带有所述第一位置对应的位置描述信息的选择消息;
根据所述位置描述信息,从所述N个菜单项中确定出与所述第一位置对应的第一菜单项;
所述菜单窗口传递所述选择消息至所述第一菜单项;
所述第一菜单项响应所述选择消息。
例如,鼠标点击主窗口中的第一菜单项,则所述菜单窗口收到鼠标点击的相关消息后,会将消息分发给鼠标点击对应位置的第一菜单项,以使所述第一菜单项独立响应所述操作。
由于所述菜单项实际上也是自定义的管理类,所述菜单项具备以下几个方面的功能:
绘制功能,菜单窗口绘制时会分别调用每个菜单项的绘制函数DrawUI获取该菜单项的绘制内容,因此菜单项需要在drawUI函数中实现自己的绘制功能。由于整个菜单项都是自定义绘制的,因此可以任意改变菜单样式,还可以支持图标,文字混合使用。
消息响应功能,所述菜单项对操作的响应也是通过所述主窗口和所述菜单窗口传递的,每个菜单项会收到所述菜单窗口分发下来的各种鼠标消息,例如,鼠标按下OnLButtonDown,鼠标松开OnLButtonUp,鼠标移动OnMouseMove,鼠标离开OnMouseLeave,鼠标滚动OnMouseWheel等等,每个菜单需要处理自己的消息。如果只是内部响应(如修改当前项背景颜色,改变字体,文字样式等等)可以直接内部修改所述菜单项后刷新窗口即可,如果是响应菜单窗口或所述主窗口下发的消息,则使用回调函数的方式将操作传回到所述菜单窗口中统一处理。具体来讲,响应菜单项点击功能,弹出菜单的时候指定一个窗口和自定义的消息类型,响应的菜单将会把响应参数通过消息的方式发送的指定的窗口,只要在窗口中实现对应的消息函数就能响应菜单项的功能。
进一步,因为每个菜单项中都有完整的消息响应和自主的绘制功能,所以每个菜单项中都可以自主的模拟定义UI控件,例如:控制固定区域的绘制和点击消息处理就可以模拟实现按钮(Button)控件,鼠标移入区域切换背景,移出区域还原,点击响应按钮事件等。基于同样的原理,选择框(CheckBox)、单选按钮(Radio Button)、进度条(SliderControl)等基本控件也都可以在所述菜单项中模拟实现。如此就可以实现菜单项里面嵌入UI控件的效果。
因为菜单项可能会有子菜单项,故需要支持子菜单的处理,所以需要添加菜单类型,如果是普通菜单项,则需要处理点击事件,如果是子菜单项,则需要在鼠标移入该菜单项的时候创建响应的子菜单,在鼠标离开该菜单项的时候关闭子菜单。其中,子菜单即菜单项中再包含的子菜单,鼠标移动到该菜单项的时候,控制子菜单创建并显示,离开的时候关闭。
通过上述步骤描述即可封装一个菜单类,使用该菜单类即可创建需要的菜单,整个菜单样式的绘制不依赖于***,全部可以自由绘制,菜单项内部也可以自由定制,使用菜单的基本流程如下:
由于本申请提供的菜单实现方式,由于所述主窗口采用层窗口模式,可以完全自定义显示效果,还可以实现在菜单项中添加按钮等基本操作,有效解决了window自带菜单不能自绘样式和不能嵌入操作的问题,使得窗口程序中菜单的使用更加灵活,显示效果也能根据需要设置。
为了便于本领域技术人员更了解本申请提供的方法,下面还提供了所述菜单窗口即所述菜单项的类结构定义:
1)菜单类结构定义
2)菜单项类结构定义
本申请提供的方法,将所述主窗口设置为层窗口模式以作为菜单的主体,继承所述主窗口实现菜单窗口,设置每个菜单项都是所述菜单窗口中的一个自定义类,也可以看作所述菜单窗口的一个子元素,所有的消息和响应都从菜单窗口开始,然后传递到每个子元素,每个子元素都只处理与自己相关的消息和操作。当需要刷新绘制时,也是由所述菜单窗口发起刷新命令,将全部子元素的各自绘制内容整合到一起绘制到窗口上。整个绘制流程不依赖于***操作,全部由用户自定义控制,因此可以实现各种绘制效果包括:半透明或不规则窗口等。另外,由于每个子元素都有独立的绘制和消息响应,因此一个子元素也是一个完整的控件,包含了一个控件需要的操作和消息,而且子元素可以把相关的操作和消息再向自己的子元素传递,这样就形成了可嵌套的UI结构,也就是子元素内部可以模拟实现自己的UI控件。
基于同一发明构思,本发明实施例还提供了实施例一中窗口菜单的实现方法对应的装置,见实施例二。
实施例二
本实施例提供了一种windows中窗口菜单的实现装置,如图2所示,所述装置包括:
主创建模块201,用于创建主窗口,并将所述主窗口设置为层窗口属性;
主绘制模块202,用于接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口;
继承模块203,用于继承所述主窗口实现菜单窗口;
菜单创建模块204,用于在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数;
菜单绘制模块205,用于获取所述N个菜单项中每个菜单项对应的菜单内容信息,并根据所述菜单内容信息显示所述N个菜单项。
在本申请实施例中,所述装置可以是智能手机、台式电脑、笔记本或平板电脑等电子设备,在此不作限制。
在本申请实施例中,所述菜单创建模块204还用于:接收用于在所述菜单窗口上的指定N个位置的指定操作;基于所述指定操作,获取所述N个位置的N个位置信息;基于所述N个位置信息,在所述N个位置创建并显示所述N个菜单项。
在本申请实施例中,所述装置还包括响应模块,所述响应模块用于:接收作用在所述菜单窗口上的第一位置的选择操作;基于所述选择操作生成携带有所述第一位置对应的位置描述信息的选择消息;根据所述位置描述信息,从所述N个菜单项中确定出与所述第一位置对应的第一菜单项;所述主窗口传递所述选择消息至所述第一菜单项;所述第一菜单项响应所述选择消息。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的windows中窗口菜单的实现方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请实施例提供的方法及装置,通过创建层窗口属性的主窗口,再继承所述主窗口实现菜单窗口,再以所述菜单窗口的自定义类的形式在所述菜单窗口上创建菜单项,从而实现所述主窗口上的绘制内容及所述菜单窗口中的菜单项均能独立于所述主窗口来设置显示属性,且由于所述菜单项为自定义类,故还可以在所述菜单项中自定义设置交互控件UI,有效的增加了窗口菜单的可自制性,使用户能按照自身需求设置所述窗口菜单,提高了窗口菜单的丰富性及灵活性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种windows中窗口菜单的实现方法,其特征在于,包括:
创建主窗口,并将所述主窗口设置为层窗口属性;
接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口;
继承所述主窗口实现菜单窗口;
在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数;
获取所述N个菜单项中每个菜单项对应的菜单内容信息,并根据所述菜单内容信息显示所述N个菜单项。
2.如权利要求1所述的方法,其特征在于,所述创建主窗口,并将所述主窗口设置为层窗口属性,包括:
采用create函数创建所述主窗口;
设置所述主窗口的属性为WS_EX_LAYERED属性。
3.如权利要求1所述的方法,其特征在于,所述接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口,包括:
接收作用于所述主窗口的第一绘制操作;
基于所述第一绘制操作,获取与所述第一绘制操作对应的主绘制内容信息,并将所述主绘制内容信息存储在内存中;
将所述内存中存储的所述主绘制内容信息刷新显示至所述主窗口。
4.如权利要求3所述的方法,其特征在于,所述主绘制内容信息为带透明度通道值的信息,以使所述主绘制内容信息对应的显示内容的透明度能独立于所述主窗口设置。
5.如权利要求1所述的方法,其特征在于,所述在所述菜单窗口上创建N个菜单项,包括:
接收用于在所述菜单窗口上的指定N个位置的指定操作;
基于所述指定操作,获取所述N个位置的N个位置信息;
基于所述N个位置信息,在所述N个位置创建并显示所述N个菜单项。
6.如权利要求5所述的方法,其特征在于,所述在所述N个位置创建并显示所述N个菜单项,包括:
通过TrackPopupMenu函数,在所述N个位置创建并显示所述N个菜单项。
7.如权利要求1-6任一所述的方法,其特征在于,所述根据所述菜单内容信息显示所述N个菜单项之后,还包括:
接收作用在所述菜单窗口上的第一位置的选择操作;
基于所述选择操作生成携带有所述第一位置对应的位置描述信息的选择消息;
根据所述位置描述信息,从所述N个菜单项中确定出与所述第一位置对应的第一菜单项;
所述菜单窗口传递所述选择消息至所述第一菜单项;
所述第一菜单项响应所述选择消息。
8.一种windows中窗口菜单的实现装置,其特征在于,包括:
主创建模块,用于创建主窗口,并将所述主窗口设置为层窗口属性;
主绘制模块,用于接收作用于所述主窗口的第一绘制操作,并将所述第一绘制操作对应的主绘制内容信息显示在所述主窗口;
继承模块,用于继承所述主窗口实现菜单窗口;
菜单创建模块,用于在所述菜单窗口上创建N个菜单项;所述N个菜单项中的每个菜单项均为所述菜单窗口的自定义类;N为自然数;
菜单绘制模块,用于获取所述N个菜单项中每个菜单项对应的菜单内容信息,并根据所述菜单内容信息显示所述N个菜单项。
9.如权利要求8所述的装置,其特征在于,所述菜单创建模块还用于:
接收用于在所述菜单窗口上的指定N个位置的指定操作;
基于所述指定操作,获取所述N个位置的N个位置信息;
基于所述N个位置信息,在所述N个位置创建并显示所述N个菜单项。
10.如权利要求8-9任一所述的装置,其特征在于,所述装置还包括响应模块,所述响应模块用于:
接收作用在所述菜单窗口上的第一位置的选择操作;
基于所述选择操作生成携带有所述第一位置对应的位置描述信息的选择消息;
根据所述位置描述信息,从所述N个菜单项中确定出与所述第一位置对应的第一菜单项;
所述主窗口传递所述选择消息至所述第一菜单项;
所述第一菜单项响应所述选择消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611135903.6A CN108228036B (zh) | 2016-12-09 | 2016-12-09 | 一种windows中窗口菜单的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611135903.6A CN108228036B (zh) | 2016-12-09 | 2016-12-09 | 一种windows中窗口菜单的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228036A true CN108228036A (zh) | 2018-06-29 |
CN108228036B CN108228036B (zh) | 2021-03-12 |
Family
ID=62638589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611135903.6A Active CN108228036B (zh) | 2016-12-09 | 2016-12-09 | 一种windows中窗口菜单的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228036B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115268716A (zh) * | 2022-08-03 | 2022-11-01 | 芯华章科技股份有限公司 | 调试方法、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101676850A (zh) * | 2008-09-16 | 2010-03-24 | 联想(北京)有限公司 | 自定义右键菜单的***和调用该右键菜单的方法 |
CN102830969A (zh) * | 2012-08-10 | 2012-12-19 | 中国电子科技集团公司第四十一研究所 | 基于窗口与菜单的仪器交互界面及其生成方法 |
CN103902258A (zh) * | 2012-12-25 | 2014-07-02 | 腾讯科技(深圳)有限公司 | 一种在网页中实现自定义菜单显示的方法及装置 |
US20150067579A1 (en) * | 2013-09-02 | 2015-03-05 | Samsung Electronics Co., Ltd. | Method and apparatus for providing multiple applications |
CN104407865A (zh) * | 2014-11-25 | 2015-03-11 | 广州酷狗计算机科技有限公司 | 窗口的显示方法及装置 |
-
2016
- 2016-12-09 CN CN201611135903.6A patent/CN108228036B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101676850A (zh) * | 2008-09-16 | 2010-03-24 | 联想(北京)有限公司 | 自定义右键菜单的***和调用该右键菜单的方法 |
CN102830969A (zh) * | 2012-08-10 | 2012-12-19 | 中国电子科技集团公司第四十一研究所 | 基于窗口与菜单的仪器交互界面及其生成方法 |
CN103902258A (zh) * | 2012-12-25 | 2014-07-02 | 腾讯科技(深圳)有限公司 | 一种在网页中实现自定义菜单显示的方法及装置 |
US20150067579A1 (en) * | 2013-09-02 | 2015-03-05 | Samsung Electronics Co., Ltd. | Method and apparatus for providing multiple applications |
CN104407865A (zh) * | 2014-11-25 | 2015-03-11 | 广州酷狗计算机科技有限公司 | 窗口的显示方法及装置 |
Non-Patent Citations (5)
Title |
---|
DOUBLELI: "用UpdateLayeredWindow实现任意异形窗口", 《博客园》 * |
PONYDPH: "菜单自绘方面的知识", 《CSDN》 * |
WEIXIN_33851429: "用UpdateLayeredWindow实现任意异形窗口", 《CSDN》 * |
吴文力: "自绘制按钮的实现", 《博客园》 * |
菊花也是花: "《Layered Window透明窗体的实现总结https://www.cnblogs.com/just-bg/p/3788412.html》", 27 July 2014, 博客园 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115268716A (zh) * | 2022-08-03 | 2022-11-01 | 芯华章科技股份有限公司 | 调试方法、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108228036B (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11460996B2 (en) | Modifying style layer properties of a digital map | |
CN103092612B (zh) | 实现安卓操作***3d桌面贴图的方法及电子装置 | |
US9360992B2 (en) | Three dimensional conditional formatting | |
US7536645B2 (en) | System and method for customizing layer based themes | |
CN104350493B (zh) | 将数据变换成可消费的内容 | |
WO2017097143A1 (zh) | 一种界面切换动画的设置方法及装置 | |
US20160110054A1 (en) | System and method for customizing a theme for modifying a look and feel of a graphical user interface | |
US20170131874A1 (en) | Software Design Tool For A User Interface And The Administration Of Proximity Responsive Information Displays In Augmented Reality Or Virtual Reality Environments | |
US20150281333A1 (en) | Method and Apparatus for Delivering GUI Applications Executing on Local Computing Devices to Remote Devices | |
CN105677351B (zh) | 多窗口兼容显示方法及装置 | |
CN109074225A (zh) | 墨水效果 | |
WO2016149215A1 (en) | System and method for modifying a look and feel of a graphical user interface for an application | |
CN104484810A (zh) | 一种基于陶瓷云的陶瓷产品个性化在线定制*** | |
US11205286B2 (en) | Techniques for optimizing creation of digital diagrams | |
CN112445564B (zh) | 界面显示方法及电子设备、计算机可读存储介质 | |
WO2015184736A1 (zh) | 一种触屏设备背景图变换的方法及终端 | |
US10275947B2 (en) | Modifying a simulated character by direct manipulation | |
CN104991707B (zh) | 一种显示用户界面方法及装置 | |
US11520473B2 (en) | Switch control for animations | |
CN107077347A (zh) | 视图管理架构 | |
CN104978114A (zh) | 一种图表的显示方法、装置 | |
CN106855772A (zh) | 一种信息展示方法及装置 | |
US20180004374A1 (en) | Process visualization toolkit | |
CN107168606B (zh) | 对话框控件显示方法、装置及用户终端 | |
CN104077114B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |