CN107357576B - 一种Windows应用程序多窗口并行绘图的方法及系统 - Google Patents

一种Windows应用程序多窗口并行绘图的方法及系统 Download PDF

Info

Publication number
CN107357576B
CN107357576B CN201710519798.4A CN201710519798A CN107357576B CN 107357576 B CN107357576 B CN 107357576B CN 201710519798 A CN201710519798 A CN 201710519798A CN 107357576 B CN107357576 B CN 107357576B
Authority
CN
China
Prior art keywords
window
sub
static memory
main window
windows
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
Application number
CN201710519798.4A
Other languages
English (en)
Other versions
CN107357576A (zh
Inventor
程时宋
陈秋龙
黄东豹
张琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhou Desay SV Automotive Co Ltd
Original Assignee
Huizhou Desay SV Automotive Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huizhou Desay SV Automotive Co Ltd filed Critical Huizhou Desay SV Automotive Co Ltd
Priority to CN201710519798.4A priority Critical patent/CN107357576B/zh
Publication of CN107357576A publication Critical patent/CN107357576A/zh
Application granted granted Critical
Publication of CN107357576B publication Critical patent/CN107357576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

本发明公开了一种Windows应用程序多窗口并行绘图的方法,包括:创建主窗口及其所属的多个子窗口,为主窗口和子窗口创建全局静态内存空间和全局静态内存位图;调用OnPaint()函数执行主窗口的界面描绘操作,将主窗口的描绘结果存放到所述全局静态内存空间;根据主窗口的标志位,判断主窗口是否首次执行OnPaint()函数的描绘操作;若是,则在OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果输出显示;若否,则直接将描绘结果输出显示。本发明还提供一种Windows应用程序多窗口并行绘图的系统。实施本发明提供的技术方案,可以提高Windows应用程序多窗口绘图效率。

Description

一种Windows应用程序多窗口并行绘图的方法及系统
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种Windows应用程序多窗口并行绘图的方法及系统。
背景技术
随着计算机技术的发展,计算机设备被广泛地应用到了生活、工作中的方方面面。在这些计算机设备中,通常均安装有微软公司的Windows操作系统,通过Windows操作系统,用户可运行多种应用程序,包括网页浏览、文档写作等。Windows是一种图形用户界面的操作系统,它把包括文本在内的所有数据都显示为屏幕上的图像。
MFC(Microsoft Foundation Classes)类库(Class Libraries),包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类;其以C++类的形式封装了Windows的API(应用程序编程接口),并且包含一个应用程序框架,它屏蔽了显示设备的特性,给程序员提供了一个统一的绘图界面,以减少应用程序开发人员的工作量。
目前使用MFC描绘界面的一般方法为:创建一个继承于CDialog的窗口作为界面,并以此窗口为主窗口(亦称为父窗口),创建多个子窗口。主窗口创建完成后,会调用主窗口的OnInitDialog()函数,MFC会根据创建的窗口顺序,对应处理WM_PAINT消息分别调用各自的OnPaint()函数,把所有的窗口的背景描绘出来。
但是,嵌入式系统的CPU、内存等与PC相差比较大,现有技术在利用MFC方法进入包含了多个窗口的界面后(如用于输入的键盘界面上),由于各个窗口都需要调用一次OnPaint()函数(创建资源、绘图、释放资源等一系列),导致用户在视觉看到界面上的窗口一个接一个按顺序创建并描绘,显示效果很不流畅,机器性能和描绘效果较差,用户体验效果非常不佳。
发明内容
本发明所要解决的技术问题是,提供一种Windows应用程序多窗口并行绘图的技术方案,实现多窗口同时绘图的控制,避免每次进入一个主窗口界面时,由于父窗口和各个子窗口的顺序描绘引起界面不流畅的现象,提高嵌入式系统中的Windows应用程序多窗口绘图效果,并提升用户体验。
为解决以上技术问题,一方面,本发明实施例提供一种Windows应用程序多窗口并行绘图的方法,包括:
创建主窗口及其所属的多个子窗口,并为所述主窗口和子窗口创建一个全局静态内存空间和全局静态内存位图;
创建Windows应用程序的一个类库,从所述类库中调用OnPaint()函数执行主窗口的界面描绘操作,将主窗口的描绘结果存放到所述全局静态内存空间;
根据主窗口的标志位,判断主窗口是否首次执行OnPaint()函数的描绘操作;
若是,则在OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果存放在所述全局静态内存空间中并输出显示;若否,则直接将所述全局静态内存空间中存放的描绘结果输出显示。
在一种可实现的方式中,所述在OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果存放在所述全局静态内存空间中,包括:
在主窗口调用OnPaint()函数枚举当前主窗口所包含的所有子窗口,获取各个子窗口的句柄,并在所述全局静态内存空间中存放待描绘的子窗口描绘队列;
向每一个子窗口发送自定义描绘消息;
各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作并将绘图结果放到所述全局静态内存空间;
清空所述全局静态内存空间中的子窗口描绘队列,并更新主窗口的标志位。
进一步地,所述各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作,具体包括:
注册自定义描绘消息;
各个子窗口根据接收的自定义描绘消息,分别对OnPaint()函数的描绘操作进行响应,并根据子窗口的标志位判断当前子窗口是否首次执行OnPaint()函数的描绘操作;
若是,则重置当前子窗口的标志位并将所述全局静态内存空间中存储的绘图结果输出显示;若否,则执行当前子窗口的描绘,并将描绘结果存放在所述全局静态内存空间中并输出显示。
另一方面,本发明实施例还提供了一种Windows应用程序多窗口并行绘图的系统,包括:
窗口配置模块,用于创建主窗口及其所属的多个子窗口,并为所述主窗口和子窗口创建一个全局静态内存空间和全局静态内存位图;
主窗口描绘模块,用于创建Windows应用程序的一个类库,从所述类库中调用OnPaint()函数执行主窗口的界面描绘操作,将主窗口的描绘结果存放到所述全局静态内存空间;
主窗口状态检测模块,用于根据主窗口的标志位,判断主窗口是否首次执行OnPaint()函数的描绘操作;
子窗口描绘模块,用于在主窗口首次执行OnPaint()函数的描绘操作时,OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果存放在所述全局静态内存空间中;
描绘结果输出模块,用于将所述全局静态内存空间中存放的描绘结果输出显示。
在一种可实现的方式中,所述子窗口描绘模块,包括:
枚举模块,用于在主窗口调用OnPaint()函数枚举当前主窗口所包含的所有子窗口,获取各个子窗口的句柄,并在所述全局静态内存空间中存放待描绘的子窗口描绘队列;
消息发送模块,用于向每一个子窗口发送自定义描绘消息;
子窗口响应模块,用于各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作并将绘图结果放到所述全局静态内存空间;
更新模块,用于清空所述全局静态内存空间中的子窗口描绘队列,并更新主窗口的标志位。
进一步地,所述子窗口响应模块,包括:
注册模块,用于注册自定义描绘消息;
消息应答模块,用于各个子窗口根据接收的自定义描绘消息,分别对OnPaint()函数的描绘操作进行响应;
子窗口状态检测模块,用于根据子窗口的标志位判断当前子窗口是否首次执行OnPaint()函数的描绘操作;
操作返回模块,用于在当前子窗口首次执行OnPaint()函数的描绘操作时,重置当前子窗口的标志位,并驱动所述描绘结果输出模块将所述全局静态内存空间中存储的绘图结果输出显示;
子窗口描绘执行模块,用于在当前子窗口并非首次执行OnPaint()函数的描绘操作时,执行当前子窗口的描绘,将描绘结果存放在所述全局静态内存空间中,并驱动所述描绘结果输出模块将所述描绘结果输出显示。
本发明实施例提供的Windows应用程序多窗口并行绘图的技术方案,将所有的子窗口需要描绘的内容复制到同一块全局静态内存空间里,配置全局静态内存位图,最终由主窗口(即父窗口)的OnPaint()函数中描绘出所有的内容;而在第二次执行主窗口的OnPaint()函数时,则无需再把各个子窗口的内容一起描绘;在首次调用子窗口描述所需的OnPaint()函数时直接返回顶层,并第二次再调用子窗口的OnPaint()函数时,再执行子窗口本身内容的描绘。由于在嵌入式系统运行的整个生命周期内,在每个需要描绘的地方都使用这个全局静态的内存DC(Device Context,设备描述环境)和全局静态内存位图,而无需频繁地执行内存DC和内存位图的创建和销毁操作。从而完成了只执行一次就描绘所有的内容,避免多个窗口执行顺序描绘时的描绘效果不流畅,提高了嵌入式系统中的Windows应用程序多窗口的绘图效率,并提升了用户体验。
附图说明
图1是本发明提供的Windows应用程序多窗口并行绘图的方法的一个实施例的流程示意图。
图2是本发明提供的Windows应用程序多窗口并行绘图的系统的一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
参看图1,是本发明提供的Windows应用程序多窗口并行绘图的方法的一个实施例的流程示意图。
具体地,本实施例提供的Windows应用程序多窗口并行绘图的方法,主要包括以下步骤:
步骤S1:创建主窗口及其所属的多个子窗口,并为所述主窗口和子窗口创建一个全局静态内存空间和全局静态内存位图。具体地,为多窗口并行描绘创建一个全局静态的内存设备环境m_dcTemporary(全局静态内存空间)以及全局静态的内存位图m_bitmapTemporary;在系统运行的整个生命周期内,在每个需要描绘的地方均使用该全局静态内存空间和内存位图,而不必频繁执行内存空间和内存位图的创建和销毁操作。在本实施例中,具体地,在每个窗口的OnPaint()函数的入口处先创建该全局静态内存空间和全局静态内存位图。
步骤S2:创建Windows应用程序的一个类库,从所述类库中调用OnPaint()函数执行主窗口的界面描绘操作,将主窗口的描绘结果存放到所述全局静态内存空间。所述类库封装有Windows的API和应用程序框架。
步骤S3:根据主窗口的标志位,判断主窗口是否首次执行OnPaint()函数的描绘操作;若是,则执行步骤S4;若否,则直接执行步骤S5。具体实施时,标志位在每个界面(主窗口)创建时设置为True,当主窗口执行了一次OnPaint()函数的描绘操作之后被设置为False;而下次重新进入此界面(主窗口)又将重新创建此界面(主窗口),主窗口的标志位又会被设置为True。
步骤S4:在OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果存放在所述全局静态内存空间中,并执行步骤S5;
步骤S5:将所述全局静态内存空间中存放的描绘结果输出显示。
本方法在首次执行主窗口(父窗口)界面的OnPaint()操作时,将所有的子窗口需要描绘的内容复制到同一全局静态内存空间里,最终由主窗口的OnPaint()方法中描绘出所有的内容。而第二次执行主窗口的OnPaint()操作时,则不再将各个子窗口的内容一起描绘。
在一种可实现的方式中,所述步骤S4具体可以采用以下步骤进行实现,包括:
步骤S41:在主窗口调用OnPaint()函数枚举当前主窗口所包含的所有子窗口,获取各个子窗口的句柄,并在所述全局静态内存空间中存放待描绘的子窗口描绘队列。在本实施例中,句柄用于标识应用程序中的不同对象和同类中的不同的实例。
步骤S42:向每一个子窗口发送自定义描绘消息。
步骤S43:各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作并将绘图结果放到所述全局静态内存空间。
步骤S44:清空所述全局静态内存空间中的子窗口描绘队列,并更新主窗口的标志位。
最后,执行所述步骤S5将所述全局静态内存空间中存储的绘图结果输出显示。
具体地,在所述步骤S43中,各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作时,包括:
步骤S431:注册自定义描绘消息;
步骤S432:各个子窗口根据接收的自定义描绘消息,分别对OnPaint()函数的描绘操作进行响应;
步骤S433:根据子窗口的标志位判断当前子窗口是否首次执行OnPaint()函数的描绘操作;若是,则执行步骤S434;若否,则执行步骤S435;
步骤S434:重置当前子窗口的标志位,并执行所述步骤S5(将所述全局静态内存空间中存储的绘图结果输出显示);
步骤S435:当前子窗口的描绘,并执行所述步骤S5(将所述全局静态内存空间中存储的绘图结果输出显示)。
子窗口的OnPaint()方法在首次调用时,直接返回,将绘图控制权交给主窗口,由主窗口统一绘制内容;子窗口第二次再调用OnPaint()操作时,再负责当前子窗口本身内容的描绘。本发明的各个子窗口在接收到OnPaint操作时,各个子窗口并行地执行相应的描绘操作。
在本发明实施例中,在第一次进入界面执行主窗口的OnPaint()操作时,通过举所有的子窗口,把所有窗口(包括主窗口和子窗口)的内容都放到同一全局内存空间中,由父窗口的OnPaint()操作完成描绘;在第一次进入各子窗口的OnPaint()操作时,操作马上返回而不做任何操作;在非第一次进入主窗口和子窗口的OnPaint()操作时,各个窗口只需要完成本窗口的描绘内容(区别于第一次进入);从而完成了只执行一次就描绘所有的内容,避免多个窗口顺序描绘时引起的资源过度占用,效果不流畅。
由于在本实施例提供的嵌入式系统运行的整个生命周期内,在每个需要描绘的地方都使用这个全局静态的内存DC(Device Context,设备描述环境)和全局静态内存位图,而无需频繁地执行内存DC和内存位图的创建和销毁操作。从而完成了只执行一次就描绘所有的内容,避免多个窗口执行顺序描绘时的描绘效果不流畅,提高了嵌入式系统中的Windows应用程序多窗口的绘图效率,并提升了用户体验。
与上述实施例提供的Windows应用程序多窗口并行绘图的方法相对应,本发明还提供了Windows应用程序多窗口并行绘图的系统。
参看图2,是本发明提供的Windows应用程序多窗口并行绘图的系统的一个实施例的结构示意图。
具体地,所述Windows应用程序多窗口并行绘图的系统,包括:
窗口配置模块100,用于创建主窗口及其所属的多个子窗口,并为所述主窗口和子窗口创建一个全局静态内存空间和全局静态内存位图;
主窗口描绘模块200,用于创建Windows应用程序的一个类库,从所述类库中调用OnPaint()函数执行主窗口的界面描绘操作,将主窗口的描绘结果存放到所述全局静态内存空间;
主窗口状态检测模块300,用于根据主窗口的标志位,判断主窗口是否首次执行OnPaint()函数的描绘操作;
子窗口描绘模块400,用于在主窗口首次执行OnPaint()函数的描绘操作时,OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果存放在所述全局静态内存空间中;
描绘结果输出模块500,用于将所述全局静态内存空间中存放的描绘结果输出显示。
在一种可实现的方式中,所述子窗口描绘模块400,包括:
枚举模块401,用于在主窗口调用OnPaint()函数枚举当前主窗口所包含的所有子窗口,获取各个子窗口的句柄,并在所述全局静态内存空间中存放待描绘的子窗口描绘队列;
消息发送模块402,用于向每一个子窗口发送自定义描绘消息;
子窗口响应模块403,用于各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作并将绘图结果放到所述全局静态内存空间;
更新模块404,用于清空所述全局静态内存空间中的子窗口描绘队列,并更新主窗口的标志位;
优选地,所述子窗口响应模块403,包括:
注册模块4031,用于注册自定义描绘消息;
消息应答模块4032,用于各个子窗口根据接收的自定义描绘消息,分别对OnPaint()函数的描绘操作进行响应;
子窗口状态检测模块4033,用于根据子窗口的标志位判断当前子窗口是否首次执行OnPaint()函数的描绘操作;
操作返回模块4034,用于在当前子窗口首次执行OnPaint()函数的描绘操作时,重置当前子窗口的标志位,并驱动所述描绘结果输出模块500将所述全局静态内存空间中存储的绘图结果输出显示;
子窗口描绘执行模块4035,用于在当前子窗口并非首次执行OnPaint()函数的描绘操作时,执行当前子窗口的描绘,将描绘结果存放在所述全局静态内存空间中,并驱动所述描绘结果输出模块500将所述描绘结果输出显示。
本实施例提供的Windows应用程序多窗口并行绘图的系统与上述图1实施例提供的Windows应用程序多窗口并行绘图的方法的工作原理对应相同,在此不再赘述。
需要说明的是,多窗口并行绘图的系统还可具有附加的资源和设备。例如,系统中包含的存储(可移动和/或不可移动)介质,包括但不限于磁盘、光盘或磁带。存储介质包括以用于存储诸如嵌入式系统程序指令、数据文件、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并且可由系统访问的任何其它介质。任何这样的存储介质都可以是系统的一部分。信息可以是嵌入式系统可读指令、数据结构、程序的模块或其它数据。
使用由计算设备处理的诸如程序模块等嵌入式系统可执行指令和/或解释指令来实现在计算设备上执行的应用。一般而言,程序模块包括在由处理单元处理时指示处理单元执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。程序模块可以位于包括存储器存储设备在内的本地和远程存储介质中。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、产品或者设备中还存在另外的相同要素。
本领域技术人员应理解,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的程序产品的形式。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (6)

1.一种Windows应用程序多窗口并行绘图的方法,其特征在于,包括:
创建主窗口及其所属的多个子窗口,并为所述主窗口和子窗口创建一个全局静态内存空间和全局静态内存位图;
创建Windows应用程序的一个类库,从所述类库中调用OnPaint()函数执行主窗口的界面描绘操作,将主窗口的描绘结果存放到所述全局静态内存空间;
根据主窗口的标志位,判断主窗口是否首次执行OnPaint()函数的描绘操作;
若是,则在OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果存放在所述全局静态内存空间中并输出显示;若否,则直接将所述全局静态内存空间中存放的描绘结果输出显示。
2.如权利要求1所述的Windows应用程序多窗口并行绘图的方法,其特征在于,所述在OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果存放在所述全局静态内存空间中,包括:
在主窗口调用OnPaint()函数枚举当前主窗口所包含的所有子窗口,获取各个子窗口的句柄,并在所述全局静态内存空间中存放待描绘的子窗口描绘队列;
向每一个子窗口发送自定义描绘消息;
各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作并将绘图结果放到所述全局静态内存空间;
清空所述全局静态内存空间中的子窗口描绘队列,并更新主窗口的标志位。
3.如权利要求2所述的Windows应用程序多窗口并行绘图的方法,其特征在于,所述各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作,具体包括:
注册自定义描绘消息;
各个子窗口根据接收的自定义描绘消息,分别对OnPaint()函数的描绘操作进行响应,并根据子窗口的标志位判断当前子窗口是否首次执行OnPaint()函数的描绘操作;
若是,则重置当前子窗口的标志位并将所述全局静态内存空间中存储的绘图结果输出显示;若否,则执行当前子窗口的描绘,并将描绘结果存放在所述全局静态内存空间中并输出显示。
4.一种Windows应用程序多窗口并行绘图的系统,其特征在于,包括:
窗口配置模块,用于创建主窗口及其所属的多个子窗口,并为所述主窗口和子窗口创建一个全局静态内存空间和全局静态内存位图;
主窗口描绘模块,用于创建Windows应用程序的一个类库,从所述类库中调用OnPaint()函数执行主窗口的界面描绘操作,将主窗口的描绘结果存放到所述全局静态内存空间;
主窗口状态检测模块,用于根据主窗口的标志位,判断主窗口是否首次执行OnPaint()函数的描绘操作;
子窗口描绘模块,用于在主窗口首次执行OnPaint()函数的描绘操作时,OnPaint()函数的描绘操作中枚举并描绘主窗口所包含的所有子窗口,将描绘结果存放在所述全局静态内存空间中;
描绘结果输出模块,用于当主窗口不是首次执行OnPaint()函数的描绘操作时,将所述全局静态内存空间中存放的描绘结果输出显示。
5.如权利要求4所述的Windows应用程序多窗口并行绘图的系统,其特征在于,所述子窗口描绘模块,包括:
枚举模块,用于在主窗口调用OnPaint()函数枚举当前主窗口所包含的所有子窗口,获取各个子窗口的句柄,并在所述全局静态内存空间中存放待描绘的子窗口描绘队列;
消息发送模块,用于向每一个子窗口发送自定义描绘消息;
子窗口响应模块,用于各个子窗口分别响应相应的自定义描绘消息,执行并行的子窗口描绘操作并将绘图结果放到所述全局静态内存空间;
更新模块,用于清空所述全局静态内存空间中的子窗口描绘队列,并更新主窗口的标志位。
6.如权利要求5所述的Windows应用程序多窗口并行绘图的系统,其特征在于,所述子窗口响应模块,包括:
注册模块,用于注册自定义描绘消息;
消息应答模块,用于各个子窗口根据接收的自定义描绘消息,分别对OnPaint()函数的描绘操作进行响应;
子窗口状态检测模块,用于根据子窗口的标志位判断当前子窗口是否首次执行OnPaint()函数的描绘操作;
操作返回模块,用于在当前子窗口首次执行OnPaint()函数的描绘操作时,重置当前子窗口的标志位,并驱动所述描绘结果输出模块将所述全局静态内存空间中存储的绘图结果输出显示;
子窗口描绘执行模块,用于在当前子窗口并非首次执行OnPaint()函数的描绘操作时,执行当前子窗口的描绘,将描绘结果存放在所述全局静态内存空间中,并驱动所述描绘结果输出模块将所述描绘结果输出显示。
CN201710519798.4A 2017-06-30 2017-06-30 一种Windows应用程序多窗口并行绘图的方法及系统 Active CN107357576B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710519798.4A CN107357576B (zh) 2017-06-30 2017-06-30 一种Windows应用程序多窗口并行绘图的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710519798.4A CN107357576B (zh) 2017-06-30 2017-06-30 一种Windows应用程序多窗口并行绘图的方法及系统

Publications (2)

Publication Number Publication Date
CN107357576A CN107357576A (zh) 2017-11-17
CN107357576B true CN107357576B (zh) 2020-07-28

Family

ID=60274082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710519798.4A Active CN107357576B (zh) 2017-06-30 2017-06-30 一种Windows应用程序多窗口并行绘图的方法及系统

Country Status (1)

Country Link
CN (1) CN107357576B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536492B (zh) * 2018-04-08 2021-09-07 武汉斗鱼网络科技有限公司 一种直播间属性信息获取方法、装置、设备及存储介质
CN114265659B (zh) * 2021-12-27 2024-08-13 飞天诚信科技股份有限公司 一种iOS系统显示弹框的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499006A (zh) * 2004-05-06 2009-08-05 柳濑隆敏 窗口显示系统及显示方法
CN102272824A (zh) * 2009-01-06 2011-12-07 三菱电机株式会社 绘图层控制装置
CN103383662A (zh) * 2013-04-27 2013-11-06 惠州市德赛西威汽车电子有限公司 一种解决Windows GDI绘图产生内存碎片的方法
CN104331297A (zh) * 2014-11-28 2015-02-04 广东威创视讯科技股份有限公司 一种渲染引擎的绘制方法及装置
CN104391699A (zh) * 2014-11-10 2015-03-04 北京元心科技有限公司 一种多窗口层的动态处理方法及系统
CN105302569A (zh) * 2015-11-18 2016-02-03 网易(杭州)网络有限公司 一种用于生成异形窗口的方法和装置
CN105404512A (zh) * 2015-11-25 2016-03-16 飞天诚信科技股份有限公司 一种应用程序窗口界面更改方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101891794B1 (ko) * 2011-11-28 2018-08-27 삼성전자주식회사 보조 윈도우 표시 방법 및 이를 지원하는 단말기

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499006A (zh) * 2004-05-06 2009-08-05 柳濑隆敏 窗口显示系统及显示方法
CN102272824A (zh) * 2009-01-06 2011-12-07 三菱电机株式会社 绘图层控制装置
CN103383662A (zh) * 2013-04-27 2013-11-06 惠州市德赛西威汽车电子有限公司 一种解决Windows GDI绘图产生内存碎片的方法
CN104391699A (zh) * 2014-11-10 2015-03-04 北京元心科技有限公司 一种多窗口层的动态处理方法及系统
CN104331297A (zh) * 2014-11-28 2015-02-04 广东威创视讯科技股份有限公司 一种渲染引擎的绘制方法及装置
CN105302569A (zh) * 2015-11-18 2016-02-03 网易(杭州)网络有限公司 一种用于生成异形窗口的方法和装置
CN105404512A (zh) * 2015-11-25 2016-03-16 飞天诚信科技股份有限公司 一种应用程序窗口界面更改方法及装置

Also Published As

Publication number Publication date
CN107357576A (zh) 2017-11-17

Similar Documents

Publication Publication Date Title
US10359902B2 (en) Task flow interface in a popup region
US7900154B2 (en) Method and apparatus for selecting a layout for a user interface to display on an electronic device
US6983357B2 (en) Hardware accelerator for an object-oriented programming language
US6330659B1 (en) Hardware accelerator for an object-oriented programming language
RU2483350C2 (ru) Диспетчер компоновки
US6633313B1 (en) Event routing mechanism in a computer system
US9513783B1 (en) Determining available screen area
US20060031818A1 (en) Hardware accelerator for an object-oriented programming language
Robinson et al. Swing
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
US7603624B2 (en) System and method for styling content in a graphical user interface control
CN112363794A (zh) 一种前端列表类组件的渲染方法及电子设备
JP2004501409A (ja) 表示用のスケーラブルなアイテムのリストを管理するシステムと方法
CN107357576B (zh) 一种Windows应用程序多窗口并行绘图的方法及系统
CN103902258A (zh) 一种在网页中实现自定义菜单显示的方法及装置
CN113688343B (zh) 一种页面权限控制方法、装置、设备及可读存储介质
US6560770B1 (en) Extending the attributes of an application generated using a fourth generation programming tool
US8212818B2 (en) Windowless shape drawing
CN104267954A (zh) 一种用户界面中所包含的部件的生成方法和装置
US20120072891A1 (en) Computer Language Syntax for Automatic Callback Function Generation
CN114510334A (zh) 类实例的调用方法、装置、电子设备及自动驾驶车辆
US10768911B2 (en) Managing software components for software application development
US8832711B1 (en) User interface for event-driven state thread architecture
CN112612469A (zh) 一种界面元素的处理方法、装置和电子设备
US20230385134A1 (en) System and method to enhance launching of application at a user equipment

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