CN105335164B - 一种基于windows的窗口绘制方法及绘制装置 - Google Patents
一种基于windows的窗口绘制方法及绘制装置 Download PDFInfo
- Publication number
- CN105335164B CN105335164B CN201510866381.6A CN201510866381A CN105335164B CN 105335164 B CN105335164 B CN 105335164B CN 201510866381 A CN201510866381 A CN 201510866381A CN 105335164 B CN105335164 B CN 105335164B
- Authority
- CN
- China
- Prior art keywords
- window
- child control
- data
- link table
- child
- 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.)
- Expired - Fee Related
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种基于windows的窗口绘制方法,包括步骤:定义与窗口和子控件特征相关的数据;基于所述与窗口和子控件特征相关的数据,在窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表;对所述与窗口和子控件特征相关的数据进行统一封装,用于定义子控件的基本功能和数据属性集而使其子控件能够实现具体功能;以及读取数据链表来获取窗口界面布局的组织结构,并将组织结构绘制在窗口上,上述方法中通过统一封装所有与窗口和子控件特征相关的数据来赋予子控件相应的功能属性,而不需要针对每一个响应功能的子控件单独进行封装,可节省资源和成本,本发明还公开应用上述方法的绘制装置。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于windows的窗口绘制方法及绘制装置。
背景技术
传统的windows窗口设计采用创建一个主窗口作为父窗口,并为该窗口设置属性,搭载相应功能的子控件,子控件由句柄进行操作,其中Windows为开发者封装了许多带有基础功能的子控件,创建子控件,用于实现不同的功能,但是该种形式的子控件的信息容易被截获,使得整个窗口的安全性得不到保障。现出现无窗口绘制(DirectUI),其原理为在父窗口上绘图,即子窗口不以窗口句柄的方式创建,只是逻辑上的窗口,绘制在父窗口上,并封装响应功能的子控件,赋予子控件相应的功能属性,然而现有封装需要对每一个响应功能的子控件进行封装,对于中小型用户来说,时间、物质成本过于高昂。
发明内容
有鉴于此,实有必要提供一种可统一封装所有的子控件的窗口绘制方法。
本发明实施例提供的一种基于windows的窗口绘制方法,包括步骤:定义与窗口和子控件特征相关的数据;基于所述与窗口和子控件特征相关的数据,在所述窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表;对所述与窗口和子控件特征相关的数据进行统一封装,用于定义所述子控件的基本功能和数据属性集而使其子控件能够实现具体功能;以及读取所述数据链表,获取所述窗口界面布局的所述组织结构,并将所述组织结构绘制在所述窗口上。
本发明实施例提供的一种基于windows的窗口绘制装置,包括:数据定义模块,用于与窗口和子控件特征相关的数据;数据链表组织模块,用于基于所述与窗口和子控件特征相关的数据,在所述窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表;数据封装模块,用于对所述与窗口和子控件特征相关的数据进行统一封装,来定义所述子控件的基本功能和数据属性集而使其子控件能够实现具体功能;以及窗口界面绘制模块,用于读取所述数据链表,获取所述窗口界面布局的所述组织结构,并将所述组织 结构绘制在所述窗口上。
基于上述的窗口绘制方法和绘制装置,定义了窗口和子控件特征的数据后,在窗口上进行布局而形成数据链表,根据数据链表的信息而将子控件直接绘制在窗口上,此外,通过统一封装所有与窗口和子控件特征相关的数据来赋予子控件相应的功能属性,而不需要针对每一个响应功能的子控件单独进行封装,可节省资源和成本。
附图说明
图1为基于windows的窗口绘制方法的一个实施例的流程图。
图2为基于windows的窗口绘制方法的另一个实施例的流程图。
图3为基于windows的窗口绘制装置的一个实施例的结构示意图。
图4为基于windows的窗口绘制装置的另一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施方式中的附图,对实施方式中的技术方案进行清楚、完整的描述。
无窗口绘制中子窗口不以窗口句柄的方式创建,只是逻辑上的窗口,绘制在父窗口上。例如,按钮、图片控件、文本控件、滚动条、列表控件等逻辑子控件是不带句柄的,只需描述了该子控件的功能和属性信息,最后由父窗口绘制并响应功能。其中,封装是对逻辑上的子控件,且响应功能的子控件,赋予子控件具有相应的功能属性。本实施例提供了一种基于windows的窗口绘制方法,其统一封装子控件来定义其基本功能和属性信息,使其具有了能够实现的具体功能,该窗口绘制方法包括基本步骤:
步骤S1,定义与窗口和子控件特征相关的数据。具体地,首先需要定义窗口和子控件的特征,其包括了窗口和子控件的位置特征、参数类型结构以及子控件的属性特征。
步骤S2,基于与窗口和子控件特征相关的数据,在所述窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表。具体地,无窗口绘制中子窗口不以窗口句柄的方式创建,只是逻辑上的窗口,绘制在父窗口上,本实施方式中,所述窗口即为父窗口,因此需要在窗口的界面上对子控件进行布局,并组织成一个数据链表。该数据链表的结构是一个物理存储单元上非连续、非顺序的存储结构,当中的数据的逻辑顺序是通过链表中的指针连接秩序实现的。其中,该数据链表由一系列节点组成,节点包括两个部分, 一个是存储数据的数据域,另一个是存储下一个结点的指针域。其中所在窗口上的界面布局的组织结构中包含了窗口和子控件的位置特征、参数类型、子控件的属性特征的内容,例如位置坐标、子控件类型、响应空间ID等。
步骤S3,对与窗口和子控件特征相关的数据进行统一封装,用于定义所述子控件的基本功能和数据属性集而使其子控件能够实现具体功能。具体地,封装是针对响应功能的子控件,赋予子控件具有相应的功能属性,将与窗口和子控件特征相关的数据统一封装来定义子控件的功能,该基本功能包括点击、双击事件、设置文本、图片等;数据属性集包括图片、文本内容、坐标信息、子控件类型、子控件ID等参数。
步骤S4,读取该数据链表,获取所述窗口界面布局的组织结构,并将所述组织结构绘制在所述窗口上。具体地,根据所读取的数据链表中的界面布局的组织结构而绘制,以便将逻辑上的子控件绘制在窗口上。
上述步骤S2和步骤S3的之间执行的先后顺序不受限定,可先形成数据链表再统一封装,由于数据链表包含所有与窗口和子控件特征相关的数据,此时可直接封装数据链表来定义子控件的基本功能和数据属性集,也可以先统一封装所有与窗口和子控件特征相关的数据,再在窗口上布局形成数据链表,本实施例中优选先在窗口上布局而形成数据链表再直接封装该数据链表。
本实施例中,定义了窗口和子控件特征的数据后,在窗口上进行布局而形成数据链表,根据数据链表的信息而将子控件直接绘制在窗口上,此外,通过统一封装所有与窗口和子控件特征相关的数据来赋予子控件相应的功能属性,而不需要针对每一个响应功能的子控件单独进行封装,可节省资源和成本。
上述是基于windows的窗口绘制方法的基本步骤,下面将基于上述基本步骤对子控件在窗口上绘制以及响应进行详细描述,请参看图2,基于windows的窗口绘制方法的另一个实施例。
步骤S11,定义窗口和子控件的坐标体系。具体地,首先需要定义窗口和子控件的坐标特征,其包括了窗口和子控件的位置特征、参数类型结构,例如窗口的界面坐标、子控件类型、子控件ID。
步骤S12,设计子控件的属性体系。例如设计按钮、编辑框、列表控件、滚动条、文本框之类子控件的属性,该属性包括文本、图片、ID等。
需要说明的是,窗口和子控件的坐标体系和子控件的属性体系均为与窗口和子控件特征相关的数据,用于来表示窗口和子控件的特征。
步骤S13,基于坐标体系和属性体系的数据,在所述窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表。具体地,基于 坐标体系和属性体系的数据,在窗口的界面上对子控件进行布局,完成数据的组织结构并形成一个数据链表。该与窗口上的界面布局相关的数据组织结构中包含了子控件在窗口布局的位置特征、参数类型、子控件的属性特征的内容,例如在窗口界面上,子控件的相应的位置坐标、子控件类型、响应子控件ID等。
步骤S14,对坐标体系和属性体系的数据进行统一封装,用于定义所述子控件的基本功能和数据属性集而使其子控件能够实现具体功能。具体地,封装是响应功能的子控件,赋予子控件具有相应的功能属性,而具有可实现的具体功能前需要定义其子控件的基本功能和数据属性集。基于窗口和子控件的坐标、属性体系中的数据,通过统一封装该数据来定赋予子控件可实现的具体功能。其中,基本功能包括点击、双击事件、设置文本、图片等;数据属性集包括图片、文本内容、坐标信息、子控件类型、子控件ID等参数。本实施例中,数据链表中包含了坐标体系和属性体系的数据,优选直接封装所有子控件的数据链表来完成封装。
步骤S15,读取所述数据链表,获取所述窗口界面上的布局的组织结构,并将所述组织结构绘制在所述窗口上。具体地,根据所读取的数据链表中的布局的组织结构而绘制来实现将逻辑上的子控件绘制在窗口上的功能。
步骤S16,读取用户单击子控件的坐标。具体地,当用户单击案件子控件后,底层操作通过单击的坐标,获取数据链表中的组织结构来获取到相应子控件,然后作出反应,例如,单击打开文本。
步骤S17,根据所述子控件的坐标检索所述数据链表获取到响应子控件数据信息而响应。由于数据链表中的组织结构包括了如在窗口界面上,子控件的相应的位置坐标、子控件类型、响应子控件ID等,当根据用户单击的坐标获取到链表组织结构而获取到相应的子控件来响应。
需要说明的是,步骤S16和步骤S17为针对用户对子控件的操作进行消息响应处理的基本步骤,通过上述窗口绘制方法,可针对用户点击请求实现子控件的消息响应。
请参看图3,提供的一种基于windows的窗口绘制装置的一个实施例包括数据定义模块101、数据链表组织模块102、数据封装模块103以及窗口界面绘制模块104。
数据定义模块101,用于与定义窗口和子控件特征相关的数据。
数据链表组织模块102,基于与窗口和子控件特征相关的数据,在所述窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表。
数据封装模块103,用于对与窗口和子控件特征相关的数据进行统一封装来定义所述子控件的基本功能和数据属性集而使其子控件能够实现具体功能。
窗口界面绘制模块104,用于读取所述数据链表,获取所述窗口界面上的布局的组织结构,并将所述组织结构绘制在所述窗口上。
本实施例中,数据定义模块101定义了与窗口和子控件特征相关的数据后,数据链表组织模块102在窗口上进行布局而形成数据链表,窗口界面绘制模块104根据数据链表的信息而将子控件直接绘制在窗口上,此外,数据封装模块103通过统一封装所有子控件特征的数据来赋予子控件相应的功能属性,而不需要针对每一个响应功能的子控件单独进行封装,可节省资源和成本。
上述是针对基于windows的窗口绘制装置各模块进行的详细描述,下面将对附加模块加以说明,请参看图4,提供的一种基于windows的窗口绘制装置的另一实施例包括:数据定义模块201、数据链表组织模块202、数据封装模块203、窗口界面绘制模块204以及功能配置模块205。
数据定义模块201,用于与定义窗口和子控件特征相关的数据。
本实施例中,定义模块201还包括数据坐标体系定义单元2011以及子控件属性设计单元2012,其中数据坐标体系定义单元2011用于定义窗口和子控件的坐标体系。坐标体系包括了窗口和子控件的位置特征、参数类型结构。子控件属性设计单元2012用于设计子控件的属性体系,该属性包括文本、图片、ID等。窗口和子控件的坐标体系和子控件的属性体系均为与窗口和子控件特征相关的数据,用于来表示窗口和子控件的特征。
数据链表组织模块202,用于基于坐标体系和属性体系的数据,在所述窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表。
数据封装模块203,用于对坐标体系和属性体系的数据进行统一封装来定义所述子控件的基本功能和数据属性集而使其子控件能够实现具体功能。本实施例中,可直接对数据链表进行封装以便子控件能够实现具体功能。
窗口界面绘制模块204,用于读取该数据链表,获取所述窗口界面上的布局的组织结构,并将所述组织结构绘制在所述窗口上。
功能配置模块205,用于针对用户对子控件的操作进行消息响应处理。
本实施例中,功能配置模块205还包括读取单元2051和响应单元2052。读取单元2051,用于读取用户单击子控件的坐标。具体地,当用户单击案件子控件后,底层操作通过单击的坐标,获取数据链表中的组织结构来获取到相应子控件,然后作出反应,例如,单击打开文本。响应单元2052,用于根据所述子 控件的坐标检索所述数据链表获取到响应子控件数据信息而响应。由于数据链表中的组织结构包括了如在窗口界面上,子控件的相应的位置坐标、子控件类型、响应子控件ID等,当根据用户单击的坐标获取到链表组织结构而获取到相应的子控件来响应。
本实施例中,数据定义模块201中的数据坐标体系定义单元2011和子控件属性设计单元2012定义了窗口和子控件的坐标体系以及子控件属性特征,数据链表组织模块202在窗口上进行布局而形成数据链表,窗口界面绘制模块204根据数据链表的信息而将子控件直接绘制在窗口上,而数据封装模块203通过统一封装所有子控件特征的数据来赋予子控件相应的功能属性,而不需要针对每一个响应功能的子控件单独进行封装,可节省资源和成本。此外,功能配置模块205响应用户对子控件的操作,通过读取单元2051获取的单击坐标以及响应单元2052进行消息响应,完成了窗口绘制的消息响应机制。
所属领域的技术人员可以清楚地了解到,为了描述简洁,上述描述的装置、模块、单元具体工作过程可以参看前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭示的方法和装置可以通过其他方式实现,例如以上描述的装置实施例仅为示意性的,所述模块单元的划分仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个单元或者组件可以结合或者一些特征可以忽略或者不执行。
对所公开实例的上述说明,使得本技术领域专业人员能够实现或者使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点一致的最宽范围。
Claims (5)
1.一种基于wi ndows的窗口绘制方法,其特征在于,包括步骤:
定义与窗口和子控件特征相关的数据;
基于所述与窗口和子控件特征相关的数据,在所述窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表;
对所述与窗口和子控件特征相关的数据进行统一封装,用于定义所述子控件的基本功能和数据属性集而使其子控件能够实现具体功能;读取所述数据链表,获取所述窗口的界面布局的所述组织结构,并将所述组织结构绘制在所述窗口上;以及
针对用户对子控件的操作进行消息响应处理;
其中,所述针对用户对子控件的操作进行消息响应处理包括:
读取用户单击子控件的坐标;
根据所述子控件的坐标检索所述数据链表获取到响应子控件数据信息而响应。
2.如权利要求1所述的基于wi ndows的窗口绘制方法,其特征在于,所述定义与窗口和子控件特征相关的数据包括:
定义所述窗口和所述子控件的坐标体系;以及
设计子控件的属性体系。
3.如权利要求1所述的基于wi ndows的窗口绘制方法,其特征在于,所述基本功能包括点击、双击事件、设置文本、设置图片;所述数据属性集包括图片、文本内容、坐标信息、子控件类型、子控件I D。
4.一种基于wi ndows的窗口绘制装置,其特征在于,包括:
数据定义模块,用于定义与窗口和子控件特征相关的数据;
数据链表组织模块,用于基于所述与窗口和子控件特征相关的数据,在所述窗口的界面上进行布局以及组织数据结构并形成包含界面布局的组织结构的数据链表;
数据封装模块,用于对所述与窗口和子控件特征相关的数据进行统一封装,来定义所述子控件的基本功能和数据属性集而使其子控件能够实现具体功能;
窗口界面绘制模块,用于读取所述数据链表,获取所述窗口的界面布局的所述组织结构,并将所述组织结构绘制在所述窗口上;以及
功能配置模块,用于针对用户对子控件的操作进行消息响应处理;
其中,所述功能配置模块包括读取单元和响应单元,所述读取单元用于读取用户单击子控件的坐标,所述响应单元用于根据所述子控件的坐标检索所述数据链表获取到响应子控件数据信息而响应。
5.如权利要求4所述的基于wi ndows的窗口绘制装置,其特征在于,所述数据定义模块包括数据坐标体系定义单元以及子控件属性设计单元,其中,所述数据坐标体系定义单元用于定义所述窗口和所述子控件的坐标体系;所述子控件属性设计单元用于设计子控件的属性体系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510866381.6A CN105335164B (zh) | 2015-12-01 | 2015-12-01 | 一种基于windows的窗口绘制方法及绘制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510866381.6A CN105335164B (zh) | 2015-12-01 | 2015-12-01 | 一种基于windows的窗口绘制方法及绘制装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335164A CN105335164A (zh) | 2016-02-17 |
CN105335164B true CN105335164B (zh) | 2019-05-28 |
Family
ID=55285731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510866381.6A Expired - Fee Related CN105335164B (zh) | 2015-12-01 | 2015-12-01 | 一种基于windows的窗口绘制方法及绘制装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335164B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201488B (zh) * | 2016-06-30 | 2019-08-30 | 国云科技股份有限公司 | 一种可重用的步骤窗口实现方法 |
CN108572859A (zh) * | 2017-12-28 | 2018-09-25 | 山东中创软件商用中间件股份有限公司 | 一种可配置的执行程序系统及其控制方法 |
CN111198740B (zh) * | 2019-12-30 | 2024-04-05 | 深圳移航通信技术有限公司 | 图形用户界面的处理方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976190A (zh) * | 2010-09-27 | 2011-02-16 | 北京神州泰岳软件股份有限公司 | 基于DirectUI的界面生成系统及方法 |
CN102141893A (zh) * | 2011-05-11 | 2011-08-03 | 清华大学 | 面向大幅面交互式桌面的多用户窗口系统 |
CN104239044A (zh) * | 2014-09-05 | 2014-12-24 | 北京航天自动控制研究所 | 一种图形用户界面动态生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4198361B2 (ja) * | 2002-01-08 | 2008-12-17 | 富士通株式会社 | 制御動作実行方法 |
-
2015
- 2015-12-01 CN CN201510866381.6A patent/CN105335164B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976190A (zh) * | 2010-09-27 | 2011-02-16 | 北京神州泰岳软件股份有限公司 | 基于DirectUI的界面生成系统及方法 |
CN102141893A (zh) * | 2011-05-11 | 2011-08-03 | 清华大学 | 面向大幅面交互式桌面的多用户窗口系统 |
CN104239044A (zh) * | 2014-09-05 | 2014-12-24 | 北京航天自动控制研究所 | 一种图形用户界面动态生成方法 |
Non-Patent Citations (1)
Title |
---|
基于DirectUI的界面库设计;武一等;《河北工业大学学报》;20110630;第40卷(第3期);第84-88页 |
Also Published As
Publication number | Publication date |
---|---|
CN105335164A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106302008A (zh) | 数据更新方法和装置 | |
CN105335164B (zh) | 一种基于windows的窗口绘制方法及绘制装置 | |
CN107659624A (zh) | 一种适用于云计算的异构云管理系统及方法 | |
CN103197929A (zh) | 一种面向儿童的图形化编程系统和方法 | |
CN107168715B (zh) | 一种智能终端菜单主题gui引擎实现方法 | |
CN104267964B (zh) | 一种模板生成装置 | |
CN105677303B (zh) | 一种组态软件画面编辑工具的设计方法 | |
CN106502770B (zh) | 一种基于有限状态机的hmi状态迁移方法 | |
CN101876917A (zh) | 一种开发控件的方法及装置 | |
CN113535165A (zh) | 界面生成方法、装置、电子设备及计算机可读存储介质 | |
CN107678740A (zh) | 一种ui业务组件的封装方法及计算机设备 | |
CN109542043A (zh) | 一种基于插件的数控系统管理方法及装置 | |
CN109976755A (zh) | 基于编程语言为Vue创建动画效果的方法以及电子设备 | |
CN111624965A (zh) | 一种工业智能制造的组态系统 | |
Noble et al. | Gadgets: Lazy functional components for graphical user interfaces | |
CN108920143A (zh) | 一种用于人机交互软件的快速开发方法 | |
CN101976190B (zh) | 基于DirectUI的界面生成系统及方法 | |
CN113900633A (zh) | 物联网场景的低代码开发方法及装置、存储介质、开发平台 | |
CN110442782A (zh) | 一种云资源检索方法与装置 | |
CN105824684B (zh) | 一种多模式大数据软件模拟器的实现方法 | |
Meixner et al. | Udit–a graphical editor for task models | |
CN107742010A (zh) | 一种在封装建立中批量添加引脚编号的方法 | |
CN106648617A (zh) | 一种基于扩展的uml2序列图的中断驱动系统建模方法 | |
CN108090063A (zh) | 一种可配置的组件数据访问方法及装置 | |
Kahn | Comparing multi-agent models composed from micro-behaviours |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190528 Termination date: 20191201 |