Поделиться через


Открытие редакторов для конкретных проектов

Если файл элемента, открываемый проектом, внутренне привязан к конкретному редактору для этого проекта, проект должен открыть файл с помощью редактора для конкретного проекта. Файл нельзя делегировать в механизм интегрированной среды разработки для выбора редактора. Например, вместо использования стандартного редактора растровых карт можно использовать этот параметр редактора для конкретного проекта, чтобы указать определенный редактор растровых карт, который распознает сведения в файле, уникальном для проекта.

Интегрированная среда разработки вызывает OpenItem метод, когда определяет, что файл должен быть открыт определенным проектом. Дополнительные сведения см. в разделе "Отображение файлов" с помощью команды "Открыть файл". Используйте следующие рекомендации для реализации OpenItem метода, чтобы проект открыл файл с помощью редактора для конкретного проекта.

Реализация метода OpenItem с помощью редактора для конкретного проекта

  1. FindAndLockDocument Вызовите метод (RDT_EditLock), чтобы определить, открыт ли файл (объект данных документа).

    Примечание.

    Дополнительные сведения о документах и объектах представления документов см. в разделе "Данные документа" и "Представление документов" в пользовательских редакторах.

  2. Если файл уже открыт, повторно создайте файл, вызвав IsDocumentOpen метод и указав значение IDO_ActivateIfOpen для grfIDO параметра.

    Если файл открыт и документ принадлежит проекту, отличному от вызывающего проекта, пользователю будет отображаться предупреждение о том, что открытый редактор находится из другого проекта. Затем откроется окно файла.

  3. Если текстовый буфер (объект данных документа) уже открыт, и вы хотите присоединить к нему другое представление, вы несете ответственность за подключение к этому представлению. Рекомендуемый подход к созданию экземпляра представления (объекта представления документов) из проекта выглядит следующим образом:

    1. SLocalRegistry Вызовите QueryService службу, чтобы получить указатель на ILocalRegistry2 интерфейс.

    2. CreateInstance Вызовите метод для создания экземпляра класса представления документов.

  4. CreateDocumentWindow Вызовите метод, указав объект представления документов.

    Этот метод использует объект представления документов в окне документа.

  5. Выполните соответствующие вызовы либо к методам, либо InitNewLoad к методам.

    На этом этапе представление должно быть полностью инициализировано и готово к открытию.

  6. Show Вызовите метод для отображения и открытия представления.