基于DirectUI的界面生成系统及方法

文档序号:6332751阅读:189来源:国知局
专利名称:基于DirectUI的界面生成系统及方法
技术领域
本发明涉及人机界面技术领域,特别涉及一种基于DirectUI的界面生成系统及 方法。
背景技术
自绘界面技术(DirectUI)是指在窗口中直接绘制界面元素,而不使用操作系 统提供的基本界面元素的技术。但由于没有使用操作系统的基本界面元素,在开发使用 DirectUI技术的软件时大都首先要实现这些基本界面元素,然后再使用这些界面元素进行 软件开发。对于大部使用DirectUI技术的软件来说,开发这些基本界面元素的工作是必不 可少的,但这些界面元素的基本功能也大都是相同或相近的。如果每次都重新开发这些界 面元素,会耗费大量的界面元素开发时间,并且开发代码只能用于该软件,无法实现重用。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是如何提高人机界面的开发效率,提高代码的重用性。( 二 )技术方案为解决上述技术问题,本发明提供了一种基于DirectUI的界面生成系统,包括窗口创建单元,创建控件所在的窗口 ;绘图消息封装单元,封装窗口中接收到的控件绘制消息,并将所述控件绘制消息 传递给窗口控件响应单元;设备消息封装单元,封装窗口中控件接收到的设备消息,并将所述设备消息传递 给窗口控件响应单元;窗口控件响应单元,对所述控件绘制消息和设备消息作出响应,并执行相应的动作。其中,所述窗口控件响应单元包括控件绘制子单元,根据所述控件绘制消息绘制控件;消息绑定子单元,将所述设备消息绑定到相应的执行子单元;执行子单元,根据对应的设备消息执行相应的动作。本发明还提供了一种利用上述的系统的界面生成方法,包括以下步骤Sl 创建控件所在的窗口 ;S2 封装窗口接收到的控件绘制消息;S3 封装窗口中控件接收到的设备消息;S4 对所述控件绘制消息和设备消息作出响应,并执行相应的动作。其中,所述步骤Sl具体方式为创建窗口,并设置窗口的背景图。其中,在设置窗口的背景图时,将窗口划分为不同的部分,分别利用不同的图片, 来绘制窗口的不同部分的背景。
3
其中,所述步骤S4具体包括当控件接收到的消息为控件绘制消息时,根据所述控件绘制消息绘制控件;当控件接收到的消息为设备消息时,将所述设备消息绑定到相应的执行子单元;根据设备消息执行相应的动作。其中,在绘制控件之前还包括步骤确定控件在父窗口的位置。其中,所述绑定的方式为对每一个设备消息都建立一个表来记录所述设备消息 需要通知到的执行子单元。(三)有益效果本发明通过对界面元素及消息进行封装,并对消息和对应的执行子单元进行绑 定,使得在开发人机界面软件时方便地利用封装的界面元素,提高了开发效率,同时提高了 代码的重用性。


图1是本发明实施例的一种基于DirectUI的界面生成系统结构示意图;图2是利用图1的系统的界面生成方法流程图;图3是图2的步骤SlOl中绘制窗口不同背景的示意图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。如图1所示,为本发明实施例的基于DirectUI的界面生成系统,包括窗口创建单元,创建控件所在的窗口,窗口作为控件的容器,必须首先创建,创建 窗口后便可以在窗口上绘制控件。绘图消息封装单元,封装窗口中接收到的控件绘制消息,由于要绘制的控件不是 操作系统的基本控件,这些控件不会自动显示在窗口中。要想在窗口中显示界面库中的控 件,必须对界面生成系统的绘图消息及操作进行封装,并将控件绘制消息传递给窗口控件 响应单元,以绘制控件,或在窗口重绘时就可以一同把窗口中需要重绘的控件进行重绘。设备消息封装单元,封装窗口中控件接收到的设备消息,由于控件已经不是操作 系统的基本控件,用户在控件上进行的操作已经无法由操作系统通知该控件,窗口必须随 时要知道用户是在哪个控件中进行的外部设备操作,这样就可以由窗口把该操作的内容通 知给这个控件。其中,外部设备包括键盘和鼠标等,其操作如键盘输入,点击鼠标左键等。 并将设备消息传递给窗口控件响应单元;窗口控件响应单元,对所述控件绘制消息和设备消息作出响应,并执行相应的动 作,具体包括控件绘制子单元,根据控件绘制消息绘制控件,或在窗口重绘时就可以一同把窗 口中需要重绘的控件进行重绘。消息绑定子单元,将所述设备消息绑定到相应的执行子单元。绑定方式为对每一 个设备消息都建立一个表来记录此消息需要通知到的执行子单元。比如用户在按钮控件上 按下鼠标左键,再抬起鼠标左键,按钮控件对用户的这两个连续操作的处理结果是确定用户是在按钮上完成了一次单击。按钮控件就会以消息的方式通知给控件使用者,即执行子 单元,以便使用者知道发生了一次按钮控件的单击事件。本发明的系统中的每个控件都提 供了一些与自身相适应的事件,在实际使用当中,用户对控件进行的任何有效操作,控件都 会将其转换成合适消息并通知使用者。使用者获得了相应的消息,就可以对用户的操作做 出相对应的处理了。执行子单元,根据对应的设备消息执行相应的动作。执行子单元是对消息响应的 单元,其中包含了该消息要执行的具体步骤,该步骤随具体情况而不同。本发明还提出了一种利用上述系统的界面生成方法,如图2所示,包括步骤201 创建控件所在的窗口,具体利用上述系统的窗口创建单元创建。创建窗 口之后,再设置窗口的背景图。在设置窗口的背景图时,将窗口划分为不同的部分,分别利 用不同的图片,来绘制窗口的不同部分的背景。如图3所示,是将窗口划分为9个不同的部 分时的情形,分别用9张不同的图片作为各部分的背景。步骤S202 封装窗口接收到的控件绘制消息,具体利用上述系统的绘图消息封装 单元封装;步骤S203 封装窗口中控件接收到的设备消息,具体利用上述系统的设备消息封 装单元封装;步骤S204 对控件绘制消息和设备消息作出响应,并执行相应的动作。具体包括当控件接收到的消息为控件绘制消息时,根据控件绘制消息绘制控件。绘制之前 还需要确定控件在窗口的位置,可利用以下两组方法中各取其一确定窗口的位置。第一组为控件左边缘位置固定,宽度固定;控件右边缘位置固定,宽度固定;控件左边缘位置固定,右边缘位置固定;控件纵轴与父容器左边缘的距离固定;控件纵轴与父容器右边缘的距离固定;控件水平居中。第二组为控件上边缘位置固定,高度固定;控件下边缘位置固定,高度固定;控件上边缘位置固定,下边缘位置固定;控件横轴与父容器上边缘的距离固定;控件横轴与父容器下边缘的距离固定;控件垂直居中。当控件接收到的消息为设备消息时,将设备消息绑定到相应的执行子单元。其中, 绑定的方式为对每一个设备消息都建立一个表来记录该设备消息需要通知到的执行子单兀。根据设备消息执行相应的动作。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通 技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
一种基于DirectUI的界面生成系统,其特征在于,包括窗口创建单元,创建控件所在的窗口;绘图消息封装单元,封装窗口中接收到的控件绘制消息,并将所述控件绘制消息传递给窗口控件响应单元;设备消息封装单元,封装窗口中控件接收到的设备消息,并将所述设备消息传递给窗口控件响应单元;窗口控件响应单元,对所述控件绘制消息和设备消息作出响应,并执行相应的动作。
2.如权利要求1所述的基于DirectUI的界面生成系统,其特征在于,所述窗口控件响 应单元包括控件绘制子单元,根据所述控件绘制消息绘制控件; 消息绑定子单元,将所述设备消息绑定到相应的执行子单元; 执行子单元,根据对应的设备消息执行相应的动作。
3.一种利用权利要求1或2所述的系统的界面生成方法,其特征在于,包括以下步骤S1创建控件所在的窗口 ;S2封装窗口接收到的控件绘制消息;S3封装窗口中控件接收到的设备消息;54对所述控件绘制消息和设备消息作出响应,并执行相应的动作。
4.如权利要求3所述的界面生成方法,其特征在于,所述步骤Sl具体方式为创建窗 口,并设置窗口的背景图。
5.如权利要求4所述的界面生成方法,其特征在于,在设置窗口的背景图时,将窗口划 分为不同的部分,分别利用不同的图片,来绘制窗口的不同部分的背景。
6.如权利要求3所述的界面生成方法,其特征在于,所述步骤S4具体包括 当控件接收到的消息为控件绘制消息时,根据所述控件绘制消息绘制控件; 当控件接收到的消息为设备消息时,将所述设备消息绑定到相应的执行子单元; 根据设备消息执行相应的动作。
7.如权利要求6所述的界面生成方法,其特征在于,在绘制控件之前还包括步骤确定 控件在父窗口的位置。
8.如权利要求6所述的界面生成方法,其特征在于,所述绑定的方式为对每一个设备 消息都建立一个表来记录所述设备消息需要通知到的执行子单元。
全文摘要
本发明公开了一种基于DirectUI的界面生成系统,包括窗口创建单元,创建控件所在的窗口;绘图消息封装单元,封装窗口中接收到的控件绘制消息,并将所述控件绘制消息传递给窗口控件响应单元;设备消息封装单元,封装窗口中控件接收到的设备消息,并将所述设备消息传递给窗口控件响应单元;窗口控件响应单元,对所述控件绘制消息和设备消息作出响应,并执行相应的动作。还公开了一种利用上述系统生成界面的方法。利用本发明在开发人机界面软件时方便地利用封装的界面元素,提高了开发效率,同时提高了代码的重用性。
文档编号G06F9/44GK101976190SQ20101029342
公开日2011年2月16日 申请日期2010年9月27日 优先权日2010年9月27日
发明者马家智 申请人:北京神州泰岳软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1