打开特定于项目的编辑器

如果项目打开的项文件本质上绑定到该项目的特定编辑器,则项目必须使用特定于项目的编辑器打开该文件。 无法将文件委托给 IDE 选择编辑器的机制。 例如,可以使用此特定于项目的编辑器选项来指定特定位图编辑器,该编辑器可识别项目中唯一的信息。

IDE 在确定文件应由特定项目打开时调用 OpenItem 该方法。 有关详细信息,请参阅 使用“打开文件”命令显示文件。 使用以下准则实现方法, OpenItem 以便项目使用特定于项目的编辑器打开文件。

使用特定于项目的编辑器实现 OpenItem 方法

  1. FindAndLockDocument调用方法(RDT_EditLock)以确定文件(文档数据对象)是否已打开。

    注意

    有关文档数据和文档视图对象的详细信息,请参阅 自定义编辑器中的文档数据和文档视图。

  2. 如果文件已打开,请通过调用 IsDocumentOpen 方法并指定参数的 IDO_ActivateIfOpen grfIDO 值来重新浮出文件。

    如果文件已打开,并且文档由调用项目以外的项目拥有,则会向用户显示一条警告,指出打开的编辑器来自另一个项目。 然后显示文件窗口。

  3. 如果文本缓冲区(文档数据对象)已打开,并且你想要将另一个视图附加到该视图,则你负责连接该视图。 建议从项目实例化视图(文档视图对象),如下所示:

    1. 调用QueryServiceSLocalRegistry服务以获取指向接口的ILocalRegistry2指针。

    2. CreateInstance调用该方法以创建文档视图类的实例。

  4. 调用该方法 CreateDocumentWindow ,指定文档视图对象。

    此方法将文档视图对象网站到文档窗口中。

  5. 对方法InitNewLoad执行相应的调用。

    此时,应完全初始化视图并准备好打开。

  6. Show调用该方法以显示和打开视图。