自定义编辑器由两部分组成:文档数据对象并记录视图对象。 当顾名思义,文档数据对象表示要显示的文本数据,并且,文档视图对象 (或 “视图”) 表示的一个或多个窗口显示文档数据对象。
文档数据对象
文档数据对象是文本的数据表示形式在文本缓冲区的。 它是存储文档文本和其他信息的 COM 对象,处理文档持久性,从而其数据多个视图。 有关更多信息,请参见
DocumentData 和 文档窗口。
自定义编辑器和设计器可以选择使用 VsTextBuffer 对象或其自定义缓冲区。 VsTextBuffer 遵循标准编辑的简化嵌入的模型,该模型支持多个视图,并提供用于管理多个视图的事件接口。
记录视图对象
显示代码和其他文本的窗口,即文档视图或视图。 在创建编辑器中,可以选择为单个视图中,文本在单个窗口中显示,或者一个多个视图,文本在多个窗口中显示。 选择取决于应用程序。 例如,因此,如果您需要并行版本,则会选择多个视图。 每个视图与集成开发环境 (ide) 运行的 (IDE)项文档表 (RDT)。 视图窗口都属于项目或 IVsHierarchy 对象。
如果编辑器支持文档数据对象的多个视图,则文档数据并记录视图对象必须是单独的。 否则,可以进行分组。 有关更多信息,请参见 支持多文档视图。
IDE 通过将一个项 ID 通知事件的视图 (例如,那么,当包含文档的解决方案已关闭的) 时 (ItemID) 在运行的每个项的文档表。 有关这方面的更多信息,请参见 运行文档表。
具有创建视图的两个选项自定义编辑器的。 一个是就地激活设计,使用 Activex 控件或文档数据对象,视图窗口中承载。 第二个是简化的嵌入模型,视图由 Visual Studio 承载,并 IVsWindowPane 实现处理 windows 命令。 有关就地激活模型的信息,请参见 就地激活。 有关这种简化的嵌入模型的信息,请参见 简化的嵌入。