嵌入式设备用户界面的实现方法

文档序号:6643834阅读:251来源:国知局
专利名称:嵌入式设备用户界面的实现方法
技术领域
本发明涉及嵌入式设备技术领域,尤其涉及一种嵌入式设备用户界面的实现方法。
背景技术
WinCE(Windows CE)是微软公司推出的专为嵌入式产品设计的操作系统,它于1996年发布了第一个版本,并相继推出了3.0、4.1、4.2等版本。WinCE是一个支持多线程、多任务的操作系统,其体系结构采用独立于通常的程序设计语言并和Windows兼容的API(应用程序接口)的方式,这样就可以保障WinCE的组件化和ROM(只读存储器)化,充分适应有限的存储空间和各种不同的芯片要求。
可以说WinCE最大的特色就是桌面Windows操作系统的缩小版本,在资料的传输上可拥有与现有PC绝对的兼容性,并且为了提升竞争力,微软特别在WinCE操作系统中加入简易版的Office Word与Office Excel让使用者将在PC上的使用习惯顺利的延续到WinCE上。另一方面,WinCE的集成开发环境为嵌入式开发人员提供了极为方便的窗口、菜单化的开发界面以及类似PC平台上VC的开发工具EVC,所以在嵌入式设备的开发过程中,选用WinCE作为嵌入式操作系统能提高产品的开发效率、缩短开发周期、使产品具有更强的市场竞争力。但是,由于WinCE的用户界面(桌面、任务栏)类似桌面PC上使用的WINDOWS界面,在屏幕尺寸相对PC小得多的带触摸屏便携设备上直接使用该界面会使操作变得困难,同时还会使不同厂商基于WinCE开发的设备都有相似的“统一的呆板面孔”,使用户界面缺乏个性。
为了使自己的嵌入式设备给用户提供一个友好、个性化的操作界面,开发人员采用的简洁的方法是设计一个全屏窗口的用户界面程序,在系统启动时就运行,用户通过这样的操作界面与设备交互。但这样做存在的问题是用户无法在这样的设备上使用第三方基于WinCE开发的标准应用程序(以下描述中也简称为应用程序),这是由于在WinCE操作系统中,SHELL模块为用户提供了一个全屏的用户操作界面,如图1所示。WinCE操作系统对基于WinCE的第三方应用程序的支持是通过SHELL为用户提供的对基于WinCE的第三方应用程序操作和控制的机制来实现的,如图2所示。
基于WinCE的应用程序按照用户对其控制方式的不同可以分为两类,一类是当应用程序运行时会在WinCE的任务栏(Taskbar,即图1中的T)产生窗口,用户通过对任务栏窗口的点击来实现对应用程序窗口的激活和切换;另一类是程序运行时不在任务栏产生窗口,但在任务栏的托盘图标区域生成一个托盘图标,用户通过对该图标的点击来激活和隐藏窗口。
第一种情况下,当基于WinCE的应用程序启动时,程序将运行信息(窗口句柄、程序图标句柄等),以消息的形式发送到SHELL模块(代码公开),在SHELL模块中有一子功能模块响应该消息并根据消息传递应用程序的运行信息,在WinCE任务栏创建与应用程序对应的应用程序提示窗口,用户通过该窗口即可实现对应用程序窗口的激活和切换。
第二种情况下,当基于WinCE的应用程序启动时,程序将与之对应的托盘图标的资源ID及点击时的回传消息等信息,以消息的形式发送到SHELL模块(代码公开),在SHELL模块中有一子功能模块响应该消息并根据消息传递的有关托盘图标的信息,在WinCE任务栏的托盘区域创建与应用程序对应的托盘图标,用户可以通过对该图标的点击来激活和隐藏窗口。
如图1所示,WinCE嵌入式操作系统通过Shell为用户提供了包括桌面和任务栏的全屏操作界面,基于WinCE开发的标准应用程序运行时通过发送消息的方式与Shell中的任务栏模块交互信息,在用户界面的任务栏窗口中建立已运行程序的提示窗口或托盘图标,使用户通过对任务栏中的运行程序提示窗口或托盘图标的点击操作实现对应用程序界面窗口激活和切换的控制。
基于上述WinCE与应用程序交互管理的过程可以看出,如果选用WinCE嵌入式操作系统的设备开发商在自己的设备中通过开发一个全屏的用户界面程序(桌面、任务栏)为用户提供一个个性化的操作界面,那么WinCE原有的包括桌面和任务栏的全屏操作界面将被个性化的用户界面替换,这样用户就无法再通过任务栏中的应用程序运行提示窗口或托盘图标对第三方应用程序的界面窗口实现激活、切换、隐藏等操作了。
除WinCE外,与WinCE有着类似架构的嵌入式操作系统如PocketPC(微软为掌上电脑所设计的操作系统)、Windows Mobile(微软为智能移动终端设备所设计的操作系统)等也同样存在着上述的问题。
正是因为上述原因,目前市场上现有使用WinCE做嵌入式操作系统的终端设备,为了兼容第三方应用程序的使用,要么如图1和图2所示采用WinCE自带的类似PC的呆板的界面,使用户通过任务栏实现对第三方应用程序窗口的激活、切换和隐藏的控制;要么采用折衷的方案,如图3所示,保留WinCE的任务栏窗口部分,只把除任务栏以外的桌面部分替换为设备开发商自己的个性化的用户界面窗口。这样一方面使用户可以通过任务栏实现对第三方应用程序窗口的激活和切换的控制,另一方面设备开发商又可以为用户提供个性化的用户界面窗口,这个方案中对第三方应用程序窗口的激活和切换的控制的方法与图1和图2所示的直接使用WinCE Shell提供的任务栏操作界面的方法是一致的,但这样做的结果是整个设备的用户界面中任务栏部分使用了WinCE原有的风格,原来的桌面部分被设备开发商提供的个性化的用户界面窗口替换,这样整个设备的用户界面就变得不统一,极为不协调。

发明内容
本发明所要解决的技术问题是克服现有技术嵌入式设备的用户界面中任务栏部分只能使用嵌入式操作系统原有的风格,使用户界面不统一、不协调或呆板的不足,提供一种嵌入式设备用户界面的实现方法,为用户提供个性化全屏的用户操作界面的同时,实现对第三方应用程序窗口的控制。
本发明为解决上述技术问题所采用的技术方案为这种嵌入式设备用户界面的实现方法,包括以下步骤设置基于嵌入式设备操作系统的全屏用户界面程序;在嵌入式设备操作系统界面的任务栏模块中内嵌一个应用程序运行信息转发模块,用于截获并转发第三方应用程序运行信息;所述的全屏用户界面程序接收来自所述的应用程序运行信息转发模块的消息,获取第三方应用程序运行信息,并根据这些信息更新用户操作界面。
用户通过用户操作界面对第三方应用程序发出的控制信息由所述的全屏用户界面程序直接发送给所述的第三方应用程序,或通过所述的应用程序运行信息转发模块转发给所述的第三方应用程序。
所述的应用程序运行信息转发模块位于任务栏模块的窗口消息处理函数内,第三方应用程序运行时,通过消息的方式将程序启动运行时的有关信息发送到所述的任务栏模块,嵌入在其中的应用程序运行信息转发模块截获这些消息并将其连同包含程序运行信息的参数一起转发到所述的全屏用户界面程序。
所述的用于传递第三方应用程序运行信息的消息包括HSHELL_WINDOW CREATED、HSHELL_WINDOWDESTROYED、WM_COPYDATA消息。
所述的全屏用户界面程序中设置有应用程序运行信息接收模块,该模块接收由所述的应用程序运行信息转发模块转发的消息,从这些消息的参数中获得程序运行信息,并提供给全屏用户界面程序的其他功能部分,通过这些应用程序信息,全屏用户界面程序实时了解应用程序所处的状态以及运行后的窗口句柄、标题或图标,对界面元素进行创建或更新。
所述的全屏用户界面程序中在全屏用户界面的上、下、左、右不同的位置建立个性化的任务栏;或者在全屏窗口的某个区域设置对第三方应用程序控制的窗口,对应已经启动的应用程序在该窗口内建立相应的按钮、图标或者下拉式菜单。
所述的嵌入式设备操作系统可以为Pocket PC、Windows Mobile或WinCE操作系统。
本发明的有益效果为本发明通过在WinCE界面模块中嵌入一个能获取并转发第三方应用程序运行信息的模块,使得在第三方应用程序启动运行时由该模块获取第三方应用程序运行时的信息并转发到嵌入式设备的全屏用户界面程序,更新用户操作界面,从而使用户可以在具有完全个性化全屏用户界面的嵌入式设备上,运行、控制基于WINCE等嵌入式操作系统开发的标准的第三方应用程序,提高了设备的通用性。
此外,由于在本发明中使用了嵌入式设备开发商提供的全屏的用户窗口界面,不再使用Wince等自带的包含桌面和任务栏的界面,这样原Wince Shell模块中为用户提供操作界面(桌面、任务栏)部分的代码就可以进行有选择的裁减,只保留与转发程序运行信息有关的部分即可,这样可以进一步减小嵌入式设备中整个软件系统编译后得到的NK.bin的尺寸,减少对设备资源的占用,提高系统在嵌入式设备中的运行效率。
由于Pocket PC,Windows Mobile等嵌入式操作系统与WinCE操作系统有类似的架构,本发明也适用于这些操作系统,实现简单易操作。


图1为现有的WinCE提供的用户操作界面窗口结构示意图;图2为现有的WinCE为用户提供的操作界面原理示意图;图3为现有的采用用户界面程序窗口替换WinCE桌面并保留任务栏的操作界面实现原理示意图;图4为本发明全屏用户界面实现原理示意图;图5为本发明全屏用户界面程序中应用程序运行信息接收模块处理流程图;图6为应用程序运行信息转发模块在任务栏模块中的逻辑位置示意图。
具体实施例方式
下面根据附图和实施例对本发明作进一步详细说明如图4所示,本发明首先设置基于嵌入式设备操作系统WinCE的全屏用户界面程序;在嵌入式设备操作系统界面WinCE Shell的任务栏(Taskbar)模块中内嵌一个应用程序运行信息转发模块,用于截获并转发第三方应用程序运行信息;全屏用户界面程序接收来自应用程序运行信息转发模块的消息,获取第三方应用程序运行信息,并根据这些信息更新用户操作界面。比如在利用下拉式菜单的方式对已运行的应用程序进行管理的情况下,就会在下拉式菜单中增加一个与新运行的应用程序对应的菜单项,利用这些菜单项就可以进行不同应用程序窗口的激活和切换。这样用户就可在不保留WinCE原有界面的情况下,通过嵌入式设备上完全个性化的用户界面实现对第三方应用程序的直接控制、管理。
现有的基于WinCE开发的标准用户界面窗口的应用程序有两类一类是运行后在WinCE的任务栏创建一个提示窗口,另一类是运行后在WinCE的任务栏的托盘图标区域建立一个图标,使用户可以通过对提示窗口和托盘图标的点击实现对应用程序窗口的激活、切换、隐藏等控制。
第一类应用程序启动运行时向WinCE Shell界面的任务栏(taskbar)模块发送一个HSHELL_WINDOWCREATED消息,通过该消息的LP参数将程序运行时的有关信息(程序图标句柄、窗口句柄、窗口标题等)传递到WinCE Shell界面的任务栏(taskbar)模块,由任务栏模块基于接收到的程序运行时的有关信息在任务栏创建应用程序提示窗口,使用户可以通过对该窗口的点击来对相应的应用程序进行控制;当已经运行的应用程序关闭时,程序向WINCE Shell界面的任务栏(taskbar)模块发送一个HSHELL_WINDOWDESTROYED消息到WINCE Shell界面的任务栏(taskbar)模块,同时在LP参数中携带程序运行时的有关信息,由任务栏模块基于接收到的程序信息将任务栏内对应于该程序的窗口销毁。
第二类应用程序启动运行时向WinCE Shell界面的任务栏(taskbar)模块发送一个WM_COPYDATA消息,该消息的LP参数是一个指向PCOPYDATASTRUCT结构实例的指针,该结构中除包含托盘图标的有关信息外还有一个成员变量dwData,该变量的取值为NIM_ADD时,表明此时有应用程序打开需要在托盘区域添加图标;该变量的取值为NIM_DELETE时,表明此时有应用程序关闭需要从托盘区域删除相应的图标。
根据上述情况,本发明提供一个应用程序信息转发模块(如图4中模块A),该模块置于WinCE Shell界面的任务栏(taskbar)模块中,逻辑位置如图6所示,该模块的逻辑位置位于任务栏模块的窗口消息处理函数内(所有发到任务栏模块的消息都通过该函数接受和处理)LRESULT CALLBACK CTaskBar::TaskBarWndProc(HWND hwnd,UINTmsg,WPARAM wp,LPARAM lp),用于截获并转发HSHELL_WINDOWCREATED、HSHELL_WINDOWDESTROYED和WM_COPYDATA这三个消息到全屏用户界面程序,同时应用程序窗口及托盘图标的有关信息也随消息的LP参数一起传递。全屏用户界面程序中的应用程序运行信息转发模块(图4中模块B)作为嵌入式设备商开发的全屏用户界面程序中的一部分,用于接收来自模块A转发的消息并通过这些消息的LP参数获得应用程序的窗口及托盘图标的有关信息提供给全屏用户界面程序的其他功能部分(如窗口界面更新部分)。
当基于WINCE开发的标准应用程序运行时,借助于Wince操作系统的消息机制通过消息的方式将程序启动运行时的有关信息(窗口图标、窗口句柄、窗口标题、托盘图标等)发送到WINCE Shell界面的任务栏(taskbar)模块,嵌入在其中的模块A截获这一消息并将其连同包含程序运行信息的LP参数一起转发到设备开发商的全屏用户界面程序,位于该界面程序中的模块B(处理流程图如图5所示)接收由模块A转发的消息从这些消息的LP参数中获得程序运行信息并提供给全屏用户界面程序的其他功能部分(如窗口界面更新部分),通过这些应用程序信息全屏用户界面程序就可以实时了解应用程序所处的状态(运行、关闭)以及运行后的窗口句柄、标题、图标等,然后通过全屏用户界面需求方案中确定的为用户提供对第三方应用程序控制的策略对界面元素进行创建或更新。
在Wince的消息机制中一个消息带两个参数LP参数、WP参数。系统在传递应用程序信息的时候只使用了LP参数,但应用程序运行信息转发模块在转发的时候也可以将应用程序信息放在WP参数中转发。
如图5所示,模块B的处理流程如下1、接受来自模块A的消息;2、判断是否创建窗口消息;如果是,则获取应用程序窗口信息;否则,判断是否创建托盘图标消息,如果是则获取应用程序托盘图标信息;3、将程序信息提供给用户界面控制部分进行处理。
全屏用户界面方案中为用户提供的对第三方应用程序控制的策略可有多种选择,例如1、可以类似WINCE的任务栏在全屏用户界面的上、下、左、右不同的位置建立个性化的“任务栏”;2、可以在全屏窗口的某个区域设置对第三方应用程序控制的窗口,对应已经启动的应用程序在该窗口内建立相应的按钮、图标或者下拉式菜单等。
用户可以通过这些个性化的全屏用户操作界面对应用程序进行控制,其发出的操作、控制信息(激活、切换、隐藏窗口等)则可由全屏用户界面程序基于接收到的相应的程序运行信息(应用程序窗口句柄、标题等)直接发给第三方应用程序;当然还可以通过模块A转发到第三方应用程序,但是这样会增加模块A实现的复杂度,降低了运行稳定性。通过这样的过程,用户就可以在具有完全个性化全屏用户界面的嵌入式设备上,运行、控制基于WINCE开发的标准的第三方应用程序,提高了设备的通用性。
此外,由于在该方案中使用了嵌入式设备开发商提供的全屏的用户窗口界面,不再使用Wince自带的包含桌面和任务栏的界面,这样原Wince Shell模块中为用户提供操作界面(桌面、任务栏)部分的代码就可以进行有选择的裁减,只保留与转发程序运行信息有关的部分即可,这样可以进一步减小嵌入式设备中整个软件系统编译后得到的NK.bin的尺寸,减少对设备资源的占用提高系统在嵌入式设备中的运行效率。
由于Pocket PC,Windows Mobile等嵌入式操作系统与WinCE操作系统有类似的架构,该发明方案完全适用于这些操作系统,实现简单易操作。本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案实现本发明,以上所述仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效变化,均包含于本发明的权利范围之内。
权利要求
1.一种嵌入式设备用户界面的实现方法,其特征在于,包括以下步骤设置基于嵌入式设备操作系统的全屏用户界面程序;在嵌入式设备操作系统界面的任务栏模块中内嵌一个应用程序运行信息转发模块,用于截获并转发第三方应用程序运行信息;所述的全屏用户界面程序接收来自所述的应用程序运行信息转发模块的消息,获取第三方应用程序运行信息,并根据这些信息更新用户操作界面。
2.根据权利要求1所述的嵌入式设备用户界面的实现方法,其特征在于用户通过用户操作界面对第三方应用程序发出的控制信息由所述的全屏用户界面程序直接发送给所述的第三方应用程序,或通过所述的应用程序运行信息转发模块转发给所述的第三方应用程序。
3.根据权利要求1或2所述的嵌入式设备用户界面的实现方法,其特征在于所述的应用程序运行信息转发模块位于任务栏模块的窗口消息处理函数内,第三方应用程序运行时,通过消息的方式将程序启动运行时的有关信息发送到所述的任务栏模块,嵌入在其中的应用程序运行信息转发模块截获这些消息并将其连同包含程序运行信息的参数一起转发到所述的全屏用户界面程序。
4.根据权利要求3所述的嵌入式设备用户界面的实现方法,其特征在于所述用于传递第三方应用程序运行信息的消息包括HSHELL_WINDOW CREATED、HSHELL_WINDOWDESTROYED、WM_COPYDATA消息。
5.根据权利要求3所述的嵌入式设备用户界面的实现方法,其特征在于所述的全屏用户界面程序中设置有应用程序运行信息接收模块,该模块接收由所述的应用程序运行信息转发模块转发的消息,从这些消息的参数中获得程序运行信息,并提供给全屏用户界面程序的其他功能部分,通过这些应用程序信息,全屏用户界面程序实时了解应用程序所处的状态以及运行后的窗口句柄、标题或图标,对界面元素进行创建或更新。
6.根据权利要求3所述的嵌入式设备用户界面的实现方法,其特征在于所述的全屏用户界面程序中在全屏用户界面的上、下、左、右不同的位置建立个性化的任务栏;或者在全屏窗口的某个区域设置对第三方应用程序控制的窗口,对应已经启动的应用程序在该窗口内建立相应的按钮、图标或者下拉式菜单。
7.根据权利要求3所述的嵌入式设备用户界面的实现方法,其特征在于所述的嵌入式设备操作系统为Pocket PC、Windows Mobile或WinCE操作系统。
全文摘要
一种嵌入式设备用户界面的实现方法,首先设置基于嵌入式设备操作系统的全屏用户界面程序;在嵌入式设备操作系统界面的任务栏模块中内嵌一个应用程序运行信息转发模块,用于截获并转发第三方应用程序运行信息;全屏用户界面程序接收来自应用程序运行信息转发模块的消息,获取第三方应用程序运行信息,并根据这些信息更新用户操作界面。本发明克服了现有技术嵌入式设备的用户界面中任务栏部分只能使用嵌入式操作系统原有的风格,使用户界面不统一、不协调或呆板的不足,为用户提供个性化全屏的用户操作界面的同时,实现对第三方应用程序窗口的控制。
文档编号G06F9/44GK1851641SQ20051010013
公开日2006年10月25日 申请日期2005年9月28日 优先权日2005年9月28日
发明者树贵明 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1