一种在即时通信窗口中插入丰富界面元素的方法及客户端的制作方法

文档序号:6465327阅读:186来源:国知局
专利名称:一种在即时通信窗口中插入丰富界面元素的方法及客户端的制作方法
技术领域
本发明涉及界面元素插入技术,尤其是涉及一种在即时通信窗口中插入丰 富界面元素的方法及客户端。
背景技术
网络即时通信(IM, InstantMessaging)工具发展到今天,已被大多数网民 所接受,成为用户必不可少的软件工具。随着IM软件的不断发展,用户不但 在平时的休闲娱乐中,而且在日常的工作中都会大量使用IM软件,实现与朋 友、同事以及同学之间的交流与沟通,IM软件已经成为网民用户日常生活中不 可缺少的通信工具之一,因此,用户对IM软件的易用性、稳定性、安全性等 方面提出了较高的要求。
目前,在IM软件的使用中,聊天是一个常用的操作。但很久以来,聊天 窗口中涉及的内容都只能是一些简单的内容,如文字、图片或链接等,不能 与用户进行复杂的界面交互,如可进行操作的按钮点击等复杂界面不能在聊 天内容中实现,复杂界面的交互不得不移到聊天内容外部展现,比如用户A
向用户B发送一个名片,但名片内容无法在聊天内容中即时展现,只能在聊天 窗口以外其他地方展现。

发明内容
有鉴于此,本发明的主要目的在于提供一种在即时通信窗口中插入丰富界 面元素的方法及客户端,能实现即时通信窗口中复杂界面的交互。 为达到上述目的,本发明的技术方案是这样实现的 本发明提供了一种在即时通信窗口中插入丰富界面元素的方法,包括 用户收到通信对端发来的需显示丰富界面元素的命令后,根据命令类型创建对象连接与嵌入OLE控件插入自身当前使用的即时通信窗口 ,并在OLE控
件内部创建所需的界面元素。
该方法具体包括
A、 第一用户在自身创建要发送给第二用户的、含有丰富界面元素的交互 内容;
B、 第一用户向第二用户发送携带有所使用模板标识符ID及其需填充信息 的客户端命令;
C、 第二用户收到第一用户发来的客户端命令后,经过解析和解读命令内 容,根据客户端命令类型创建OLE控件插入自身当前使用的即时通信窗口,并 根据需填充信息在OLE控件中创建所需的界面元素。
上述方案中,步骤C之后,该方法进一步包括通过将Windows消息经由 OLE控件转发给相应的界面元素,第二用户与即时通信窗口中创建的界面元素 进行交互。
其中,所述将Windows消息经由OLE控件转发给相应的界面元素具体为 产生Windows消息,由IM软件将Windows消息传给OLE控件,再由OLE控 件传输给自身内部相应的界面元素。
上述方案中,所述创建含有丰富界面元素的交互内容为根据模板创建;每 个模板对应一个模板ID。
本发明还提供了一种客户端,包括内容创建单元、收发单元、解析解读单 元、以及OLE控件及界面元素创建单元;其中,
所述内容创建单元,用于创建含有丰富界面元素的交互内容;
所述收发单元,用于向通信对端发送携带有所使用模板ID及其需填充信息 的客户端命令,或接收通信对端发来的客户端命令,并将收到的客户端命令发 送给解析解读单元;
所述解析解读单元,用于解析客户端命令,并解读出客户端命令的类型以 及其中的需填充信息,之后将解读出的类型和需填充信息发送给OLE控件及界
面元素创建单元;所述OLE控件及界面元素创建单元,用于创建OLE控件插入到即时通信 窗口中,并根据需填充信息在OLE控件中创建所需的界面元素。
上述方案中,所述客户端还包括动态交互单元,用于实现用户与即时通 信窗口中创建的丰富界面元素进行交互。
上述方案中,所述客户端还包括存储有各种交互内容模板的模板库,所 述内容创建单元根据模板库中的任意 一个所需模板创建交互内容,每个模板对 应一个模板ID。
本发明所提供的在即时通信窗口中插入丰富界面元素的方法及客户端,用 户之间进行即时通信交互时, 一用户根据另一用户发来的需要显示丰富界面元 素的命令,创建对象连接与嵌入(OLE, Object Linking and Embedding)控件插 入自身所用客户端的即时通信窗口,且在OLE控件内部实现界面元素,相应的, Windows的鼠标、键盘等消息可以通过OLE控件转发给界面元素,从而使插入 即时通信窗口中的、OLE控件内的界面元素具有与鼠标和键盘交互的功能,进 而能实现即时通信窗口中复杂界面的交互。
本发明克服了现有技术中在聊天窗口釆用RichEdk只能按内部规则对聊天 内容进行排版的缺陷,由于现有技术中RichEdit是按内部预先设置的规则进行 内容排列的,所以用户不能任意调节聊天内容中图片和文字的位置;而本发明 将内部实现丰富界面元素的OLE控件插入RichEdit中,之后就可以通过调节界 面元素的位置,来任意调节聊天内容中图片和文字的位置,进而实现任意的排 版控制,如此,即可控制更精确的内容排版。
由于本发明在OLE控件内部创建有各种界面元素,所以能使很多功能的实 现更丰富,例如文字链接可以更丰富,如鼠标移到文字链接处可以改变颜色、 加下划线等;文字单行显示不下时,可显示省略号,也可以限制文字显示的行 数等等;可设置图文混排;可为图片增加不同的效果,如鼠标移到之处边框发 亮等;设置图片间距等等。


图la为现有界面引擎结构示意图; 图lb为本发明支持OLE控件的界面引擎结构示意图; 图lc为本发明中聊天窗口实现的层次关系示意图; 图2为本发明方法的实现流程示意图。
具体实施例方式
本发明的基本思想是某用户收到通信对端发来的需显示丰富界面元素的 命令后,根据命令类型创建OLE控件插入自身当前使用的即时通信窗口,并在 OLE控件内部创建各种所需的界面元素。进一步的,Windows消息通过OLE 控件转发给相应的界面元素。
这里,Windows消息包括鼠标消息、键盘消息等;所述即时通信窗口为聊 天窗口。
本发明通过RichEdit的API接口嵌入OLE控件,将OLE控件技术与界面 引擎技术两者相结合,使OLE控件内部可以实现界面元素。所谓界面引擎是一 套界面解决方案,自己绘制各种控件,然后进行各种Windows消息的派发,界 面引擎具体如何实现,已在其它专利申请中公开,这里不再赘述。由于界面引 擎是基于Windows消息系统的,所以本申请需要对界面引擎进行改造,以支持 OLE控件技术。具体的,现有技术中界面引擎的结构如图la所示,界面引擎 包含在Windows窗口内,与Windows窗口存在绑定关系;本发明的改造就是取 消界面引擎与Windows窗口之间的绑定,代替的是Windows消息传递,如图 lb所示,这样外部只需要传入一些标准的Windows消息就可以使界面引擎运作 起来,同时,OLE控件也通过消息传递与界面引擎实现交互。
本发明中,聊天窗口实现的层次关系如图lc所示,相应的消息转发过程为 最外层的Windows窗口会收到鼠标、键盘等消息,这些Windows消息会通过界 面引擎转发到RichEdit中。以鼠标消息为例:RichEdit根据鼠标的位置和OLE 控件在RichEdit中的位置判断,鼠标是否在某个OLE控件的范围内,如果在,则将鼠标消息传给所属的OLE控件,由于OLE控件内部使用了界面引擎技术, 所以,OLE控件只需将鼠标消息继续传递给内部的界面元素,界面元素就可以 工作了,比如控制鼠标移动到一个按钮上时,按钮变为高亮等等。
图2为本发明方法的实现流程,如图2所示,本发明在即时通信窗口中插 入丰富界面元素的方法包括以下步骤
步骤21:第一用户在自身创建要发送给第二用户的、含有丰富界面元素的 交互内容。
这里,所述丰富界面元素是指交互内容中需要填充的一系列内容,如名片 中的名字、电话、地址等。所述交互内容是根据预先设置好内容排版方式的模 板创建的,且所使用的模板同时存在于通信双方的IM软件中。
通常,模板可以有很多种,每种模板对应一个模板标识符(ID),以供对方 识别,例如第一用户向第二用户传送名片,就根据名片模板创建名片,名片 模板对应一个模板ID。其中,同一类型的模板也可以根据内容或排版的不同有 多个,分别对应不同的模板ID,如名片模板可以有多种,每种名片模板对应 一个名片模板ID。多种模板可存储于模板库中。
步骤22:第一用户向第二用户发送携带有所使用模板ID及其需填充信息 的客户端命令。
步骤23:第二用户收到第一用户发来的客户端命令后,解析客户端命令。
这里,所述客户端命令是按照双方约定的一种自定义协议,当然,也可以 釆用双方均支持的标准协议。所述的解析是指底层协议的解包,仅是将内容分 析出来,即分析有哪些内容,并未进一步分析命令类型、命令内容是什么。
步骤24:第二用户进一步解读客户端命令,解读出客户端命令类型以及其 中各种详细的需填充信息,根据客户端命令类型创建一个OLE控件插入到自身 当前使用的即时通信窗口中,并根据解读出的、详细的需填充信息在OLE控件 中创建各种所需的界面元素。
这里,所述解读是指在即时通信窗口中还需进一步判断命令具体是什么类 型,然后根据不同的类型进行不同的处理,如对于普通的文本命令,就直接插入文字;对于需显示丰富界面元素的命令,就需要根据命令中的各种需填充 信息创建出一个可插入丰富界面元素的OLE控件,然后插入到自身当前使用的 即时通信窗口中。
由于OLE控件仅用于实现通用的功能,因此,对于不同的需求,创建的 OLE控件是一样的,之后再在OLE控件内部插入界面元素。至于界面元素的 组织、组成排布,OLE控件并不用关心。OLE控件会提供一个通用的API接口 供应用层调用,比如InsertGFFrame(...),应用层只需实现好一套界面元素,然 后通过所提供的通用API接口插入到OLE控件内部即可。
所述创建是在IM软件程序内部创建一个组件对象模型(COM)组件,即 时通信窗口中提供有一个插入接口,该插入接口可接收所创建的COM组件, 具体是通过调用即时通信窗口中RichEdit的插入接口才能插入。
步骤25:通过将Windows消息经由OLE控件转发给相应的界面元素,第 二用户与即时通信窗口中创建的丰富界面元素进行复杂界面交互。
例如将鼠标移到文字链接处可以改变颜色、加下划线等;文字单行显示 不下时,可显示省略号,也可以限制文字显示的行数等等;可设置图文混排; 可为图片增加不同的效果,如鼠标移到之处边框发亮等;设置图片间距等等。
下面以发送名片为例,具体说明本发明方法的实现过程。其中,用户A为 第一用户,用户B为第二用户,用户A和用户B是IM中的好友关系。
用户A向用户B发送名片、以及用户B与聊天窗口进行复杂界面交互的过 程包括
步骤l、用户A要发送名片给用户B,则用户A创建一个自己的名片; 这里,用户A是根据名片模板来创建名片,名片模板预先定义好了名片排
版方式,且所用名片模板同时存在于用户A和用户B的IM软件中。模板中提
供有一系列需要填写的信息,如名字、电话等,名片的结构、背景图等均可
以由用户自己设置。
步骤2、用户A发送一条发送名片的客户端命令给用户B,命令中携带有
所采用名片模板的模板ID、名片项、以及名片中需填写的信息。这里,名片项是指所创建名片中包含哪些需填充项,如姓名项、电话项、 地址项、手机项等等;需填充信息是指这些项对应的具体要填写的详细信息,
如姓名项为用户A、电话项为12345678等等。
步骤3、用户B收到用户A发来的客户端命令后,解析客户端命令。 这里的解析是指底层协议的解包。
步骤4、用户B解读用户A发来的客户端命令,根据客户端命令类型发现 是发送名片的命令,就创建一个OLE控件插入到自身当前使用的聊天窗口中, 然后根据用户A发来的名片的详细内容,在OLE控件中创建显示名片各部分 所需的各种界面元素。
具体的,先根据解读出的详细内容,创建各个所需的界面元素,然后插入 到OLE控件中就会显示出来,具体如何插入为已有技术,在此不再详述。其中, 名片中的每个项分别对应一个界面元素,还有些界面元素是用于进行修饰的, 比如边框等等。
这里,用户B解读客户端命令中具体内容时,可以打开聊天窗口,也可以 不打开聊天窗口 ,打开聊天窗口主要是为了方便解读出的内容在聊天窗口中显 示。所述创建各种界面元素的方式与创建界面中各个元素的方式相同,都是IM 软件程序内部的对象。
步骤5、用户B可与聊天窗口中具有丰富界面元素的名片进行复杂交互。 这里,之所以能进行复杂交互的原因是在OLE控件内部创建有界面元素, 那么,背景技术中需要在聊天窗口以外实现的功能目前在这里就可以实现,比 如主面板上的一些组成部分、好友列表等等,都是由界面元素组成的,所以, 这些界面元素可进行很多复杂的交互,比如名片上有按钮可以通过点击弹出 个人详细资料,还可以即时点击修改名片内容等等,所有操作均在聊天内容中 完成。
对于复杂交互的具体实现, 一般是通过点击产生Windows中的鼠标消息, 然后IM软件将鼠标消息传给OLE控件,再由OLE控件传输给自身内部相应 的界面元素。当然,也可以通过输入产生Windows中的键盘消息。为实现上述方法,本发明还提出一种客户端,包括内容创建单元、收发单
元、解析解读单元、OLE控件及界面元素创建单元、以及动态交互单元;其中, 所述内容创建单元,用于创建含有丰富界面元素的交互内容;所述收发单
元,用于向通信对端发送携带有所使用模板ID及其需填充信息的客户端命令,
或接收通信对端发来的客户端命令,并将收到的客户端命令发送给解析解读单
元;所述解析解读单元,用于解析客户端命令,并解读出客户端命令的类型以
及其中详细的需填充信息,之后将所解读出的类型和需填充信息发送给OLE控 件及界面元素创建单元;所述OLE控件及界面元素创建单元,创建OLE控件 插入到即时通信窗口中,并根据需填充信息在OLE控件中创建各种界面元素; 所述动态交互单元,用于实现用户与即时通信窗口中创建的丰富界面元素进行 复杂界面交互。
所述客户端还可以进一步包括存储有各种交互内容模板的模板库,客户 端的内容创建单元可根据模板库中的任意 一个所需模板创建交互内容,每个模 板对应一个模板ID。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种在即时通信窗口中插入丰富界面元素的方法,其特征在于,该方法包括用户收到通信对端发来的需显示丰富界面元素的命令后,根据命令类型创建对象连接与嵌入OLE控件插入自身当前使用的即时通信窗口,并在OLE控件内部创建所需的界面元素。
2、 根据权利要求l所述的方法,其特征在于,该方法具体包括A、 第一用户在自身创建要发送给第二用户的、含有丰富界面元素的交互 内容;B、 第一用户向第二用户发送携带有所使用模板标识符ID及其需填充信息 的客户端命令;C、 第二用户收到第一用户发来的客户端命令后,经过解析和解读命令内 容,根据客户端命令类型创建OLE控件插入自身当前使用的即时通信窗口,并 根据需填充信息在OLE控件中创建所需的界面元素。
3、 根据权利要求2所述的方法,其特征在于,步骤C之后,该方法进一 步包括通过将Windows消息经由OLE控件转发给相应的界面元素,第二用户与即时通信窗口中创建的界面元素进行交互。
4、 根据权利要求3所述的方法,其特征在于,所述将Windows消息经由 OLE控件转发给相应的界面元素具体为产生Windows消息,由IM软件将 Windows消息传给OLE控件,再由OLE控件传输给自身内部相应的界面元素。
5、 根据权利要求1至4任一项所述的方法,其特征在于,所述创建含有丰 富界面元素的交互内容为根据模板创建;每个模板对应一个模板ID。
6、 一种客户端,其特征在于包括内容创建单元、收发单元、解析解读单 元、以及OLE控件及界面元素创建单元;其中,所述内容创建单元,用于创建含有丰富界面元素的交互内容; 所述收发单元,用于向通信对端发送携带有所使用模板ID及其需填充信息的客户端命令,或接收通信对端发来的客户端命令,并将收到的客户端命令发 送给解析解读单元;所述解析解读单元,用于解析客户端命令,并解读出客户端命令的类型以 及其中的需填充信息,之后将解读出的类型和需填充信息发送给OLE控件及界面元素创建单元;所述OLE控件及界面元素创建单元,用于创建OLE控件插入到即时通信 窗口中,并根据需填充信息在OLE控件中创建所需的界面元素。
7、 根据权利要求6所述的客户端,其特征在于,所述客户端还包括动态 交互单元,用于实现用户与即时通信窗口中创建的丰富界面元素进行交互。
8、 根据权利要求6或7所述的客户端,其特征在于,所述客户端还包括 存储有各种交互内容模板的模板库,所述内容创建单元根据模板库中的任意一 个所需模板创建交互内容,每个模板对应一个模板ID。
全文摘要
本发明公开了一种在即时通信窗口中插入丰富界面元素的方法,包括用户收到通信对端发来的需显示丰富界面元素的命令后,根据命令类型创建对象连接与嵌入OLE控件插入自身当前使用的即时通信窗口,并在OLE控件内部创建所需的界面元素。本发明还同时公开了一种客户端,包括内容创建单元、收发单元、解析解读单元、以及OLE控件及界面元素创建单元;采用本发明的方法及客户端,能实现即时通信窗口中复杂界面的交互。
文档编号G06F9/46GK101296198SQ20081012750
公开日2008年10月29日 申请日期2008年6月25日 优先权日2008年6月25日
发明者刘晓宇 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1