如何:提供隐藏文本支持

除了大纲区域外,可以创建隐藏文本区域。 隐藏文本区域可以是客户端控件或编辑控件和使用完全隐藏文本区域。 编辑器将显示一个隐藏区域作为水平线。 此示例是在 HTML 编辑器中仅脚本视图。

过程

实现一个隐藏文本区域

  1. 调用 SVsTextManagerQueryService

    这将返回指向 IVsHiddenTextManager

  2. 调用 GetHiddenTextSession,通过在给定文本缓冲区的指针。 这将确定一个隐藏文本会话是否用于缓冲区已经存在。

  3. 如果的已存在,则您不需要创建一个,并对现有 IVsHiddenTextSession 对象的指针返回。 使用此指针枚举和创建隐藏文本区域。 否则,调用 CreateHiddenTextSession 创建缓冲区的隐藏文本会话。

    IVsHiddenTextSession 对象的指针返回。

    备注

    当您调用 CreateHiddenTextSession时,可以指定一个隐藏的文本客户端 (即 IVsHiddenTextClient)。,在隐藏的文本或概述由用户时,展开或折叠隐藏文本客户端通知您。

  4. 调用 AddHiddenRegions 一次添加一个或多个新的大纲区域,指定以下信息。 reHidReg (NewHiddenRegion) 参数:

    1. 指定 hrtConcealed 的值。 NewHiddenRegion 结构的 iType 成员指示您创建一个隐藏的区域,而不是大纲区域。

      备注

      当隐藏的区域隐藏时,编辑器将在隐藏的区域周围自动显示行指示它们是否存在。

    2. 指定该区域是客户端控件或编辑控件在 NewHiddenRegion 结构的 dwBehavior 成员。 这次智能概述的实现可以包含编辑和客户端控件轮廓和隐藏文本区域的组合。