当前位置: BOLT界面引擎 > 知识库文章 > RichEditObject中对象操作指南

RichEditObject中对象操作指南

作者:Song 2013-03-18

Richedit用以在界面上展示一段富文本内容,采用自主编写的排版引擎,不仅支持不同格式的文字混排,还可以插入任何元对象和控件。

下面介绍下如何在Richedit中操作对象。

 

l  插入对象:

1.   创建对象。

2.   设置对象大小(排版时需要此信息)。

3.   调用richeditInsertObject插入对象。

 

l  复制/粘贴对象:

复制/粘贴需要用户响应richedit对象的两个事件,即OnGetObjectUniqueIDOnCreateObjectFromUniqueID

 

string uniqueid, void* userdata, bool bHandled OnGetObjectUniqueID( RicheditObject self, LayoutObject obj )

复制操作中,遇到对象的时候,会触发OnGetObjectUniqueID事件,参数为当前需要复制的对象,用户可以通过对象句柄创建一个对象唯一id并且保存一个用户自定义数据块,而用户不用关心与剪贴板的交互工作。

 

LayoutObject obj, bool bHandled OnCreateObjectFromUniqueID( RicheditObject self, string uniqueid, void* userdata )

粘贴操作时,当发现当前粘贴的是一个对象,会触发OnCreateObjectFromUniqueID事件,通知用户根据GetObjectUniqueID生成的iduserdata生成一个对象,用户需要设置生成的对象的大小(对象大小的数据可以在OnGetObjectUniqueID事件里保存在userdata中),richedit会将创建好的对象插入到内容之中。

关于复制/粘贴与插入对象的例子,可以参考sdk中的wizzard例程中的富文本。

 

l  枚举当前Richedit中的对象:

可以通过BeginEnumObjectGetNextObject配合使用枚举当前richedit中的插入的所有对象,若枚举过程中发生输入和删除操作,不保证枚举结果的正确性。

 

迅雷公司 版权所有 Copyright 2003-2010 Thunder Inc.All Rights Reserved. 意见反馈:xl7doc@xunlei.com