CN1248016A - 在单任务系统中实现图形化界面模拟的方法 - Google Patents
在单任务系统中实现图形化界面模拟的方法 Download PDFInfo
- Publication number
- CN1248016A CN1248016A CN 98119199 CN98119199A CN1248016A CN 1248016 A CN1248016 A CN 1248016A CN 98119199 CN98119199 CN 98119199 CN 98119199 A CN98119199 A CN 98119199A CN 1248016 A CN1248016 A CN 1248016A
- Authority
- CN
- China
- Prior art keywords
- control
- focus
- class
- information
- finish
- 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.)
- Pending
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种在单任务操作系统中实现多任务模拟方法。它是在单任务操作系统中,采用数据结构对其模拟,通过双向循环链表描述顺序关系,进行消息的传递,采用链表保存各任务,通过查询键表最终确定消息的接受对象,实现了在单任务系统中对多任务系统的模拟,将基础操作系统界面图形化,形成友好的图形用户(GUI)界面,使用户能够方便地进行操作。
Description
本发明涉及在单任务操作系统实现图形化界面模拟的方法,更具体地,涉及一种基于单任务系统的外挂式多任务模拟的方法,可以完成在单任务系统环境下,开发较复杂的图形界面。
随着技术的不断进步,高级操作系统不断被研发出来,但同时其对硬件的要求也愈加严格,从而也就造成对硬件的极端依赖,以Intel公司的X86体系为例,我们将在高级操作系统下和基础操作系统下在系统崩溃后分别进行系统恢复的比较结果列表如下:
系统比较 | ||||
操作系统 | Win3.x(英文) | Win95(英文) | WinNT(英文) | DOS7.0(英文) |
安装环境 | 基于DOS | 基于DOS | 基于DOS | 基于DOS |
所占内存 | >8MB | >16MB | >16MB | 640KB |
成本 | <99$ | >100$ | >1000$ | <10$ |
管理 | Better | Best | Best of theBest | Normal |
启动时间 | 大约14s | 大约15s | 大约2-3min | 大约5s |
启动所需硬盘空间 | 20-30MB | 大约70MB | 大约150MB | 大约300KB |
软驱启动后的界面 | 文本 | 文本 | 文本 | 文本 |
(注:测试机器Pentium166MHz CPU、32MB内存) |
从上表可以看出,利用基础操作系统(如DOS)来恢复已经崩溃的操作系统,在时间、成本、和占用电脑硬盘空间、存储器等方面,均优于在高级操作系统下对已崩溃系统的恢复,因此,当该种操作系统崩溃时,就要依靠基础操作系统(如DOS)来进行恢复。
一般在DOS类型的操作系统中,应用程序的用户界面大部分是文字模式下的图形化界面,或命令行模式的界面。与命令行模式的界面相比,文字模式下的界面有了一定的交互性,但其单一的色调、简单的控制并未给用户带来大副的便利。且在文字模式下无法使用辅助输入装置(例如鼠标)进行操作,并借此反映应用程序的当前处理状态。Windows系统本身属于多任务系统,可在同一时间内开启多个任务,并可在各任务间切换,而在基础操作系统(如DOS)中,所有资源完全由应用程序独占使用,因此被称为单任务系统。在单任务系统中,可以采用数据结构对其进行模拟,可以通过图形化界面在表象上产生多任务的效果。
本发明的目的是在基础操作系统上完成对高级操作系统图形用户界面(GUI界面)的多任务模拟仿真,以同时执行多个工作,有效使用中央处理单元,这样既可以保持用户界面与高级操作系统的统一持续性,又提供了一套完整的图形界面体系,且仅占用640KB基本内存,无需加载32位DOS功能扩展。
本发明之另一目的,在于将基础操作系统的界面图形化,形成了友好的图形用户界面(GUI),使用户能够方便地进行操作。
本发明之目的主要是通过双向循环链表描述任务顺序关系,通过链表进行消息的传递,采用链表保存各任务,通过查询链表最终确定消息的接受对象,实现了在单任务系统中对多任务系统的模拟。
为了达到上述目的,需要在类似DOS等类型的基础操作系统(OS)中实现GUI管理,最根本的,是要解决这种基础操作系统不能象高级操作系统(类似Windows95)那样进行多任务操作的问题,本发明建立了一个基于基础系统的外挂式多任务模拟,从而可以完成在基础系统环境下,开发较复杂的图形界面(GUI)。所谓外挂式是指操作系统本身无此功能,而由附加程序予以补充,例如英文Windows系统中显示中文的软件就是一种外挂式程序。
图1是本发明的一个实施例的双向循环链表逻辑结构图;
图2是本发明的一个实施例的功能模块图;
图3是本发明的一个实施例的技术流程图;
图4是本发明的一个实施例的一个界面示意图;
图5是本发明的一个实施例的三个控件在双向循环链表中的结构;
图6是本发明的一个实施例的类的组织结构。
本发明的图形化界面包括三个部分(参见图2模块图);
1.控件集合
定义了在界面中使用的全部控件,并且均由对象(Object)统一派生。与用户之间发生交互联系。采用面向对象的方法将之维系在一起,通过父类和子类之间继承关系达到对继承动态多态指针的多层动态束定。
2.对话窗口(Dialog类)
Dialog类完成了一个对话窗口的基本工作,包括接收信息并完成该信息对其内部控件的管理,驱动各个控件完成相应的操作。
3.焦点的识别和接收
对于外设输入(主要是针对鼠标和键盘),其中以键盘的焦点切换为主要控制对象,因此,焦点(focus)类并不由Object类派生而是独立存在,Focus类内部维护一个双向循环链表(如图2),可以动态地随系统的变化而变化。记录系统中存在的可接受焦点的实例,并按照预定顺序使焦点在其间切换,对于已经被辨识出处于焦点的控件,即调用相应的外部控件处理函数,控件做出相应的响应。Mouse类(见图1)则完成对鼠标的操控。
为了模拟高级操作系统(OS)图形界面,需要实现对消息机制(Message)和控件查询顺序的管理,为此采用双向循环链表做为基本结构来完成对控件逻辑结构的模拟(参见图1),其中包括两组控制指针,一组用于针对鼠标消息(Mouse Message)的处理,另一组用于对焦点(Focus)的控制,当用户通过鼠标选择控件1后,其产生的相关信息由主控类获得后,通过第一组指针对双向循环链表进行快速查询,确定响应者。然后当查询过控件1后,将这个相关信息传到下一级控件2,由此利用双向链表逐级传递,直至最低层控件,最终由底层的控件完成控制,在完成了对该控件的响应后,控件逐级向上传递响应后的标识(Flag),每一级都对标识进行处理,并返回上一级,最终由主控类作最后的处理。
同理,当用户通过键盘(Keyboard)选择控件,主控类获取后,将根据键值做出相应的动作。基于双向循环链表双向循环的特征,当用户通过键盘操作Tab键或Shift_Tab键时,可以接收切换的焦点的顺序可循正向或反向,主控类根据双向循环链表当前焦点所在的控件,通过下一组指针将键盘消息继续向下传递,从而完成对键盘的响应,则由此可完成对多任务系统的模拟。
在OOP(Object Oriented Programming面向对象)概念下,我们引入类和继承多态指针。其中的“类”表现在通用控件方面(参见图4),所用到的所有通用控件的组织关系如图6所示,其中对象(Object)为组织图中的总父类,由它又分对话窗口(Dialog)、按钮(Button)和列表框(ListBox)三个从属于Object的子类,而WizardDlg(精灵对话窗口)又是Dialog的子类;Button又作为它派生出的八种Button的父类,父类与子类的关系是继承关系,即子类继承父类的特点,但各个子类又具有自己的特点。
本发明在DOS操作系统下建立通用控件(如对话框Dialog、按钮Button、滚动条、单选框Radio等),在不改变DOS操作系统的情况下,建立符合窗口标准的图形界面体系(GUI)。
图形界面体系由控件组成,而这些控件均由Object统一派生,其组织图如图1所示。由Object作为父系,派生出Dialog(对话窗口)、Button(按钮)和List Box(列表框)。
本发明技术是对窗口系统进行的划分,整个体系以控件为基础,通过继承关系维系在一起,其最上层是所有控件类的根类,是对图形界面的一些基本属性界定。给出了控件的共同属性,并允许控件之间的相互通信。
Object作为根类,所有控件类均由其派生,Object类封装了对于鼠标及焦点的转换和循环。由信息控制类对多态指针进行操作,多态指针所指向的对象随环境改变而变化,当无法预测子类别时,可针对父类别操作,之后借助多态指针完成适合于子类别的修改,从而完成对其子类的焦点的切换和鼠标消息的传递。在此以ListBox为例,在这个控件只是针对Button的公共方法进行操作,从而完成控件的行为,如果希望使用其他类型的具有Button特征的控件,只需从Button继承,并重载其公有的虚函数即可。
参见图3,该图是本发明的技术流程图,当通过外设如鼠标或键盘输入信息时,我们分别接收到来自鼠标或键盘的信息(3-2),取窗口中的第一个控件(3-3),判断是否外设的信息是针对该控件(3-4),如果不是,则取下一个控件(3-5),然后再判断是否所有控件都被检查到(3-6),如果是,就回到初始状态状态(3-1),继续接收下一个外设信息;
在判断外设输入的信息是否针对该控件发出时,若结果为是,也就是说外设的动作是作用于目前被检测的控件的;如果目前被检测的控件是接收外设信息的控件,则利用分别与该控件对应的鼠标和键盘,将接收的信息保存(3-7),接下来是利用函数IsChangble()来辨识控件的属性是否已经改变(3-8),如果是,则获取当前的属性的变化(3-9);如果没有改变,则返回初始状态,继续判断是否要接收信息的控件发出相应动作(3-10),如果是,则做出相应的外部处理(3-11);如果不需要控件进行动作,则返回初始状态,等待新的外设信息。
本发明所提供的图形化界面基于对控件属性的操作来完成。
以图5为例具体说明:
控件为:两个按钮(Button)和一个指令框(ComoBox)。
WizardDlg作为Button和ComoBox的主控类,通过对Button和ComoBox的内部属性的判断,了解用户操作单一控件后产生的结果,包括焦点切换和控件的自身操作。
当用户通过外设(鼠标或键盘)进行操作(输入信息)后,首先由安装精灵对话控件(WizardDlg)类接收,并依序完成对各控件(另外两个控件Button)测试,并将信息传入响应控件中,由控件依同样过程完成对消息的响应,如无任何控件响应则放弃本次响应进入下一次循环。而通过鼠标或键盘的Tab键选择焦点Focus(也就是当前处于激活状态的控件)时,焦点的判断通过以下的双向键表实现。
在图5中,控件1代表Comobox中的Highlight状态,控件2代表Next按钮,控件3代表Exit按钮。他们利用Tab键进行焦点切换的循环顺序如双向键表所示。
当存在控件响应消息时,在控件完成了自身行为的动作后,WizardDlg()类将判断控件属性是否有变化,如有,则获取当前状态下控件属性的变化,然后来完成与控件相关连的动作,一种控件本身的行为,是与控件相关连而由其外层控制所决定的行为。
当用户重新设置Comobox中的项目后,外层控制类在获知所发生的变化后,调用GetCurrentID方法得到当前用户选定的项目,再根据用户选择的项目,更新系统界面图形,以适应用户的选择。
Claims (6)
1.一种在单任务系统下实现图形化界面模拟的方法,其中所述图形化界面包括三个部分:
a.控件集合,定义了界面中使用的全部控件;
b.对话窗口类,完成一个对话窗口的基本工作,包括接收信息并完
成该信息对其内部控件的管理,驱动各个控件完成相应的操作;
c.焦点的识别和接收;
其特征在于,焦点类独立存在,其内部维护一个双向循环链表,通过双向循环链表保存各任务,描述任务顺序关系,用链表进行消息的传递,通过查询链表最终确定消息的接受对象。
2.根据权利要求1的方法,特征在于,界面中使用的全部控件由对象(Object)统一派生,采用面向对象的方法将之维系在一起,通过父类与子类之间的继承关系达到对继承动态多态指针的多层动态束定。
3.根据权利要求1的方法,特征在于所述双向循环链表动态地随系统的变化而变化,记录系统中存在的可接受焦点,并按照预定顺序使焦点在其间切换,对于已经被辨识出处于焦点的控件,则调用相应的外部控件处理函数,控件作出相应的响应。
4.根据权利要求3的方法,特征在于,在所述的焦点的识别和接收中,采用双向循环链表作为基本结构来完成对控件逻辑结构的模拟,其中包括两组控制指针,一组针对鼠标消息的处理,一组用于对焦点的控制。
5.根据权利要求3的方法,特征在于,当用户通过鼠标选择控件1后,其产生的相关信息由主控类获得,通过针对鼠标消息的处理的指针对双向循环链表进行快速查询,确定响应者,然后将这个信息传到下一级控件2,由此利用双向链表逐级传递,直至最低层控件,最终由底层的控件完成控制,在完成了对该控件的响应后,控件逐级向上传递响应后的标识,每一级都对标识进行处理,并返回上一级,最终由主控类作最后的处理,由此完成对多任务系统的模拟。
6.根据权利要求3的方法,特征在于,当用户通过焦点选择控件后,其产生的相关信息由主控类获取,将根据焦点做出相应的动作,基于双向循环链表双向循环的特征,当用户通过焦点操作Tab键或Shift_Tab键时,可以接收切换的焦点的顺序可循正向或反向,主控类根据双向循环链表当前焦点所在的控件,通过下一组指针将焦点消息继续向下传递,直至最低层控件,最终由底层的控件完成控制,在完成了对该控件的响应后,控件逐级向上传递响应后的标识,每一级都对标识进行处理,并返回上一级,最终由主控类作最后的处理,从而完成对焦点的响应,由此完成对多任务系统的模拟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 98119199 CN1248016A (zh) | 1998-09-16 | 1998-09-16 | 在单任务系统中实现图形化界面模拟的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 98119199 CN1248016A (zh) | 1998-09-16 | 1998-09-16 | 在单任务系统中实现图形化界面模拟的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1248016A true CN1248016A (zh) | 2000-03-22 |
Family
ID=5226304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 98119199 Pending CN1248016A (zh) | 1998-09-16 | 1998-09-16 | 在单任务系统中实现图形化界面模拟的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1248016A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1311346C (zh) * | 2000-04-06 | 2007-04-18 | 微软公司 | 提供图形控制的方法以及主题管理系统 |
CN101221516B (zh) * | 2008-01-18 | 2011-06-29 | 清华大学 | 跨操作系统平台的界面无缝整合方法及系统 |
CN101251800B (zh) * | 2008-04-01 | 2011-10-12 | 北京中星微电子有限公司 | 图形用户界面生成方法及装置 |
WO2011143967A1 (zh) * | 2010-05-19 | 2011-11-24 | 大连新中连软件集团有限公司 | 一种图形化用户界面实现系统和方法 |
CN102937914A (zh) * | 2011-10-21 | 2013-02-20 | 微软公司 | 返回利用实体所执行的任务的通知 |
CN103853593A (zh) * | 2012-11-30 | 2014-06-11 | 英业达科技有限公司 | 操作系统的模拟系统及其方法 |
CN106062716A (zh) * | 2016-06-02 | 2016-10-26 | 百富计算机技术(深圳)有限公司 | 在单任务系统中实现多任务的方法、装置及单任务系统 |
CN102707942B (zh) * | 2011-02-28 | 2017-03-01 | 微软技术许可有限责任公司 | 操作系统体验状态 |
CN111045662A (zh) * | 2018-10-15 | 2020-04-21 | 安永金融科技股份有限公司 | 图形化自动对话程序开发系统、方法与计算机可读存储器 |
-
1998
- 1998-09-16 CN CN 98119199 patent/CN1248016A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1311346C (zh) * | 2000-04-06 | 2007-04-18 | 微软公司 | 提供图形控制的方法以及主题管理系统 |
CN101221516B (zh) * | 2008-01-18 | 2011-06-29 | 清华大学 | 跨操作系统平台的界面无缝整合方法及系统 |
CN101251800B (zh) * | 2008-04-01 | 2011-10-12 | 北京中星微电子有限公司 | 图形用户界面生成方法及装置 |
WO2011143967A1 (zh) * | 2010-05-19 | 2011-11-24 | 大连新中连软件集团有限公司 | 一种图形化用户界面实现系统和方法 |
CN102707942B (zh) * | 2011-02-28 | 2017-03-01 | 微软技术许可有限责任公司 | 操作系统体验状态 |
CN102937914A (zh) * | 2011-10-21 | 2013-02-20 | 微软公司 | 返回利用实体所执行的任务的通知 |
CN103853593B (zh) * | 2012-11-30 | 2017-03-01 | 英业达科技有限公司 | 操作系统的模拟系统及其方法 |
CN103853593A (zh) * | 2012-11-30 | 2014-06-11 | 英业达科技有限公司 | 操作系统的模拟系统及其方法 |
CN106062716A (zh) * | 2016-06-02 | 2016-10-26 | 百富计算机技术(深圳)有限公司 | 在单任务系统中实现多任务的方法、装置及单任务系统 |
WO2017206151A1 (zh) * | 2016-06-02 | 2017-12-07 | 百富计算机技术(深圳)有限公司 | 在单任务系统中实现多任务的方法、装置及单任务系统 |
CN106062716B (zh) * | 2016-06-02 | 2019-11-29 | 百富计算机技术(深圳)有限公司 | 在单任务系统中实现多任务的方法、装置及单任务系统 |
US10782999B2 (en) | 2016-06-02 | 2020-09-22 | Pax Computer Technology (Shenzhen) Co., Ltd. | Method, device, and single-tasking system for implementing multi-tasking in single-tasking system |
CN111045662A (zh) * | 2018-10-15 | 2020-04-21 | 安永金融科技股份有限公司 | 图形化自动对话程序开发系统、方法与计算机可读存储器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2037750C (en) | Hierarchical inter-panel process flow control | |
US5732271A (en) | Data processing system and method for processing an object oriented development environment employing property inheritance using prototypical objects | |
EP0972241B1 (en) | Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems | |
Heywood et al. | A practical hierarchical model of parallel computation I. The model | |
US6434594B1 (en) | Virtual processing network enabler | |
US5335320A (en) | Graphical user interface editing system | |
CN1280689C (zh) | 动态配置图形用户界面的方法 | |
JP3127442B2 (ja) | アプリケーション・プログラム・ステップのための対話式インタフェースを提供する表示画面パネルをダイナミックに生成するコンピュータ・システム | |
US5625783A (en) | Automated system and method for dynamic menu construction in a graphical user interface | |
JP2843763B2 (ja) | オブジェクト指向コンピュータ・システムにおけるインタフェース方法及び装置 | |
US7725904B2 (en) | Method and system for accessing externally-defined objects from an array-based mathematical computing environment | |
EP0726534A1 (en) | Method and apparatus for the pointer-based searching of large volumes of data | |
US20030081007A1 (en) | Object oriented explorer type environment | |
WO2022078199A1 (zh) | 小程序控制方法、装置、设备及存储介质 | |
CN1248016A (zh) | 在单任务系统中实现图形化界面模拟的方法 | |
CA2089842C (en) | Language processing system using object networks | |
CA2299866C (en) | Document and task coordination system for a computer | |
EP1649362A1 (en) | System and method for providing a generic graphical user interface framework | |
EP2375326A1 (en) | Executing operations via asynchronous programming model | |
CN1148642C (zh) | 处理来自输入部件的数据的方法和系统 | |
US6976270B2 (en) | Process and component for inquiring about security relationships | |
CA2097541C (en) | Concurrency control through a class library in object oriented technology | |
CN100403788C (zh) | 用于处理视听内容的描述的方法和系统 | |
CN1494013A (zh) | 专利分析与展示系统及方法 | |
Kim et al. | A practical approach to static analysis and execution of rules in active databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |