CN101976190B - 基于DirectUI的界面生成系统及方法 - Google Patents
基于DirectUI的界面生成系统及方法 Download PDFInfo
- Publication number
- CN101976190B CN101976190B CN201010293426.2A CN201010293426A CN101976190B CN 101976190 B CN101976190 B CN 101976190B CN 201010293426 A CN201010293426 A CN 201010293426A CN 101976190 B CN101976190 B CN 101976190B
- Authority
- CN
- China
- Prior art keywords
- control
- window
- fixed
- message
- hand edge
- 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
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种基于DirectUI的界面生成系统,包括:窗口创建单元,创建控件所在的窗口;绘图消息封装单元,封装窗口中接收到的控件绘制消息,并将所述控件绘制消息传递给窗口控件响应单元;设备消息封装单元,封装窗口中控件接收到的设备消息,并将所述设备消息传递给窗口控件响应单元;窗口控件响应单元,对所述控件绘制消息和设备消息作出响应,并执行相应的动作。还公开了一种利用上述系统生成界面的方法。利用本发明在开发人机界面软件时方便地利用封装的界面元素,提高了开发效率,同时提高了代码的重用性。
Description
技术领域
本发明涉及人机界面技术领域,特别涉及一种基于DirectUI的界面生成系统及方法。
背景技术
自绘界面技术(DirectUI)是指在窗口中直接绘制界面元素,而不使用操作系统提供的基本界面元素的技术。但由于没有使用操作系统的基本界面元素,在开发使用DirectUI技术的软件时大都首先要实现这些基本界面元素,然后再使用这些界面元素进行软件开发。对于大部使用DirectUI技术的软件来说,开发这些基本界面元素的工作是必不可少的,但这些界面元素的基本功能也大都是相同或相近的。如果每次都重新开发这些界面元素,会耗费大量的界面元素开发时间,并且开发代码只能用于该软件,无法实现重用。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提高人机界面的开发效率,提高代码的重用性。
(二)技术方案
为解决上述技术问题,本发明提供了一种基于DirectUI的界面生成系统,包括:
窗口创建单元,创建控件所在的窗口;
绘图消息封装单元,封装窗口中接收到的控件绘制消息,并将所述控件绘制消息传递给窗口控件响应单元;
设备消息封装单元,封装窗口中控件接收到的设备消息,并将所述设备消息传递给窗口控件响应单元;
窗口控件响应单元,对所述控件绘制消息和设备消息作出响应,并执行相应的动作。
其中,所述窗口控件响应单元包括:
控件绘制子单元,根据所述控件绘制消息绘制控件;
消息绑定子单元,将所述设备消息绑定到相应的执行子单元;
执行子单元,根据对应的设备消息执行相应的动作。
本发明还提供了一种利用上述的系统的界面生成方法,包括以下步骤:
S1:创建控件所在的窗口;
S2:封装窗口接收到的控件绘制消息;
S3:封装窗口中控件接收到的设备消息;
S4:对所述控件绘制消息和设备消息作出响应,并执行相应的动作。
其中,所述步骤S1具体方式为:创建窗口,并设置窗口的背景图。
其中,在设置窗口的背景图时,将窗口划分为不同的部分,分别利用不同的图片,来绘制窗口的不同部分的背景。
其中,所述步骤S4具体包括:
当控件接收到的消息为控件绘制消息时,根据所述控件绘制消息绘制控件;
当控件接收到的消息为设备消息时,将所述设备消息绑定到相应的执行子单元;
根据设备消息执行相应的动作。
其中,在绘制控件之前还包括步骤:确定控件在父窗口的位置。
其中,所述绑定的方式为:对每一个设备消息都建立一个表来记录所述设备消息需要通知到的执行子单元。
(三)有益效果
本发明通过对界面元素及消息进行封装,并对消息和对应的执行子单元进行绑定,使得在开发人机界面软件时方便地利用封装的界面元素,提高了开发效率,同时提高了代码的重用性。
附图说明
图1是本发明实施例的一种基于DirectUI的界面生成系统结构示意图;
图2是利用图1的系统的界面生成方法流程图;
图3是图2的步骤S101中绘制窗口不同背景的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,为本发明实施例的基于DirectUI的界面生成系统,包括:
窗口创建单元,创建控件所在的窗口,窗口作为控件的容器,必须首先创建,创建窗口后便可以在窗口上绘制控件。
绘图消息封装单元,封装窗口中接收到的控件绘制消息,由于要绘制的控件不是操作系统的基本控件,这些控件不会自动显示在窗口中。要想在窗口中显示界面库中的控件,必须对界面生成系统的绘图消息及操作进行封装,并将控件绘制消息传递给窗口控件响应单元,以绘制控件,或在窗口重绘时就可以一同把窗口中需要重绘的控件进行重绘。
设备消息封装单元,封装窗口中控件接收到的设备消息,由于控件已经不是操作系统的基本控件,用户在控件上进行的操作已经无法由操作系统通知该控件,窗口必须随时要知道用户是在哪个控件中进行的外部设备操作,这样就可以由窗口把该操作的内容通知给这个控件。其中,外部设备包括:键盘和鼠标等,其操作如键盘输入,点击鼠标左键等。并将设备消息传递给窗口控件响应单元;
窗口控件响应单元,对所述控件绘制消息和设备消息作出响应,并执行相应的动作,具体包括:
控件绘制子单元,根据控件绘制消息绘制控件,或在窗口重绘时就可以一同把窗口中需要重绘的控件进行重绘。
消息绑定子单元,将所述设备消息绑定到相应的执行子单元。绑定方式为对每一个设备消息都建立一个表来记录此消息需要通知到的执行子单元。比如用户在按钮控件上按下鼠标左键,再抬起鼠标左键,按钮控件对用户的这两个连续操作的处理结果是确定用户是在按钮上完成了一次单击。按钮控件就会以消息的方式通知给控件使用者,即执行子单元,以便使用者知道发生了一次按钮控件的单击事件。本发明的系统中的每个控件都提供了一些与自身相适应的事件,在实际使用当中,用户对控件进行的任何有效操作,控件都会将其转换成合适消息并通知使用者。使用者获得了相应的消息,就可以对用户的操作做出相对应的处理了。
执行子单元,根据对应的设备消息执行相应的动作。执行子单元是对消息响应的单元,其中包含了该消息要执行的具体步骤,该步骤随具体情况而不同。
本发明还提出了一种利用上述系统的界面生成方法,如图2所示,包括:
步骤201:创建控件所在的窗口,具体利用上述系统的窗口创建单元创建。创建窗口之后,再设置窗口的背景图。在设置窗口的背景图时,将窗口划分为不同的部分,分别利用不同的图片,来绘制窗口的不同部分的背景。如图3所示,是将窗口划分为9个不同的部分时的情形,分别用9张不同的图片作为各部分的背景。
步骤S202:封装窗口接收到的控件绘制消息,具体利用上述系统的绘图消息封装单元封装;
步骤S203:封装窗口中控件接收到的设备消息,具体利用上述系统的设备消息封装单元封装;
步骤S204:对控件绘制消息和设备消息作出响应,并执行相应的动作。具体包括:
当控件接收到的消息为控件绘制消息时,根据控件绘制消息绘制控件。绘制之前还需要确定控件在窗口的位置,可利用以下两组方法中各取其一确定窗口的位置。
第一组为:
控件左边缘位置固定,宽度固定;
控件右边缘位置固定,宽度固定;
控件左边缘位置固定,右边缘位置固定;
控件纵轴与父容器左边缘的距离固定;
控件纵轴与父容器右边缘的距离固定;
控件水平居中。
第二组为:
控件上边缘位置固定,高度固定;
控件下边缘位置固定,高度固定;
控件上边缘位置固定,下边缘位置固定;
控件横轴与父容器上边缘的距离固定;
控件横轴与父容器下边缘的距离固定;
控件垂直居中。
当控件接收到的消息为设备消息时,将设备消息绑定到相应的执行子单元。其中,绑定的方式为:对每一个设备消息都建立一个表来记录该设备消息需要通知到的执行子单元。
根据设备消息执行相应的动作。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (5)
1.一种基于DirectUI的界面生成系统,其特征在于,包括:
窗口创建单元,创建控件所在的窗口;
绘图消息封装单元,封装窗口中接收到的控件绘制消息,并将所述控件绘制消息传递给窗口控件响应单元;
设备消息封装单元,封装窗口中控件接收到的设备消息,并将所述设备消息传递给窗口控件响应单元;
窗口控件响应单元,对所述控件绘制消息和设备消息作出响应,并执行相应的动作;所述窗口控件响应单元包括:控件绘制子单元、消息绑定子单元和执行子单元;
所述控件绘制子单元根据所述控件绘制消息绘制控件,绘制前根据以下两组方式中各取其一确定控件在窗口的位置:
第一组为:
控件左边缘位置固定,宽度固定;
控件右边缘位置固定,宽度固定;
控件左边缘位置固定,右边缘位置固定;
控件纵轴与父容器左边缘的距离固定;
控件纵轴与父容器右边缘的距离固定;
控件水平居中;
第二组为:
控件上边缘位置固定,高度固定;
控件下边缘位置固定,高度固定;
控件上边缘位置固定,下边缘位置固定;
控件横轴与父容器上边缘的距离固定;
控件横轴与父容器下边缘的距离固定;
控件垂直居中;
所述消息绑定子单元对每一个设备消息都建立一个表来记录此设备消息需要通知到的执行子单元,以将所述设备消息绑定到相应的执行子单元;
所述执行子单元根据对应的设备消息执行相应的动作。
2.一种利用权利要求1所述的系统的界面生成方法,其特征在于,包括以下步骤:
S1:创建控件所在的窗口;
S2:封装窗口接收到的控件绘制消息;
S3:封装窗口中控件接收到的设备消息;
S4:对所述控件绘制消息和设备消息作出响应,并执行相应的动作;所述步骤S4具体包括:
当控件接收到的消息为控件绘制消息时,根据所述控件绘制消息绘制控件;
当控件接收到的消息为设备消息时,将所述设备消息绑定到相应的执行子单元,所述绑定的方式为:对每一个设备消息都建立一个表来记录所述设备消息需要通知到的执行子单元;
根据设备消息执行相应的动作;
在所述绘制控件之前还包括步骤:根据以下两组中各取其一确定控件在窗口的位置:
第一组为:
控件左边缘位置固定,宽度固定;
控件右边缘位置固定,宽度固定;
控件左边缘位置固定,右边缘位置固定;
控件纵轴与父容器左边缘的距离固定;
控件纵轴与父容器右边缘的距离固定;
控件水平居中;
第二组为:
控件上边缘位置固定,高度固定;
控件下边缘位置固定,高度固定;
控件上边缘位置固定,下边缘位置固定;
控件横轴与父容器上边缘的距离固定;
控件横轴与父容器下边缘的距离固定;
控件垂直居中。
3.如权利要求2所述的界面生成方法,其特征在于,所述步骤S1具体方式为:创建窗口,并设置窗口的背景图。
4.如权利要求3所述的界面生成方法,其特征在于,在设置窗口的背景图时,将窗口划分为不同的部分,分别利用不同的图片,来绘制窗口的不同部分的背景。
5.如权利要求2所述的界面生成方法,其特征在于,在绘制控件之前还包括步骤:确定控件在父窗口的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010293426.2A CN101976190B (zh) | 2010-09-27 | 2010-09-27 | 基于DirectUI的界面生成系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010293426.2A CN101976190B (zh) | 2010-09-27 | 2010-09-27 | 基于DirectUI的界面生成系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101976190A CN101976190A (zh) | 2011-02-16 |
CN101976190B true CN101976190B (zh) | 2014-02-19 |
Family
ID=43576078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010293426.2A Active CN101976190B (zh) | 2010-09-27 | 2010-09-27 | 基于DirectUI的界面生成系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101976190B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207864B (zh) * | 2011-05-19 | 2015-10-21 | 中兴通讯股份有限公司 | 一种列表控件的创建方法和装置 |
CN103914285A (zh) * | 2012-12-31 | 2014-07-09 | 北京新媒传信科技有限公司 | 一种用户界面布局的方法、装置及终端设备 |
CN105335164B (zh) * | 2015-12-01 | 2019-05-28 | 深圳市云舒网络技术有限公司 | 一种基于windows的窗口绘制方法及绘制装置 |
CN109976749B (zh) * | 2019-03-28 | 2024-01-16 | 深圳市创联时代科技有限公司 | 一种绘图过程的继承方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132147B2 (en) * | 2007-05-29 | 2012-03-06 | Sap Ag | Semantic interpretation of software models for generating user interfaces |
CN101470601A (zh) * | 2007-12-26 | 2009-07-01 | 福建正扬信息技术开发有限公司 | 一种零编码生成应用软件的方法及生成平台 |
CN101539854B (zh) * | 2008-01-24 | 2012-10-31 | 西安电子科技大学 | 一种异构软件界面集成的实现方法 |
-
2010
- 2010-09-27 CN CN201010293426.2A patent/CN101976190B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101976190A (zh) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102662664B (zh) | 界面动画实现方法及系统 | |
CN103077246B (zh) | 一种基于Netty的大屏可视化平台数据推送系统 | |
US8407661B2 (en) | Method and system for creating HMI applications for an automation process | |
CN101976190B (zh) | 基于DirectUI的界面生成系统及方法 | |
CN101510151A (zh) | 综合监控跨平台组态人机界面系统 | |
CN101853157B (zh) | 一种应用软件gui对象自动识别方法 | |
CN103226442B (zh) | 一种批量处理文件的方法和装置 | |
CN103064690A (zh) | 一种基于Android操作系统的开发框架及其执行方法 | |
CN102681856A (zh) | 基于示教器的机器人人机界面的实现系统及实现方法 | |
CN106325703B (zh) | 网页人机界面控制设备及其运行方法 | |
CN102637127A (zh) | 一种控制鼠标模块的方法及电子设备 | |
CN102541566A (zh) | 半导体软件界面框架生成方法 | |
CN103034491A (zh) | 一种电力系统界面集成的实现系统及其实现方法 | |
CN104063071A (zh) | 内容输入方法及装置 | |
CN103064682A (zh) | 面向设备的人机界面组态设计方法 | |
CN110889056A (zh) | 页面标记的方法及装置 | |
CN103473041A (zh) | 一种可视化的数据处理方法及系统 | |
CN103984478B (zh) | 一种动态图标的展示方法及系统 | |
CN102455910B (zh) | 面向ic装备控制软件的gui平台化实现方法 | |
CN103810292A (zh) | 一种图形界面的配置方法及装置 | |
CN105335164B (zh) | 一种基于windows的窗口绘制方法及绘制装置 | |
CN105630504A (zh) | 基于extjs的多表格应用代码复用方法及系统 | |
CN102520946A (zh) | 一种基于嵌入式Linux的桌面系统的实现方法 | |
CN103856466A (zh) | 一种可自动配置协议的采集终端装置 | |
CN103049270A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building A block 5 layer Patentee before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |