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


Создание приложения с контейнером активных документов

Самый простой и самый рекомендуемый способ создания активного приложения контейнера документов — создать приложение контейнера MFC EXE с помощью мастера приложений MFC, а затем изменить приложение для поддержки активного хранения документов.

Создание активного приложения контейнера документов

  1. В меню "Файл" щелкните "Проект" в подменю "Создать".

  2. В левой области выберите тип проекта Visual C++ .

  3. Выберите приложение MFC в правой области.

  4. Назовите проект MyProj, нажмите кнопку "ОК".

  5. Выберите страницу поддержки составных документов.

  6. Выберите параметр "Контейнер" или "Контейнер" или "Полный сервер".

  7. Установите флажок "Активный контейнер документов" проверка.

  8. Нажмите кнопку Готово.

  9. Когда мастер приложений MFC завершит создание приложения, откройте следующие файлы с помощью Обозреватель решений:

    • MyProjview.cpp
  10. В MyProjview.cpp внесите следующие изменения:

    • В CMyProjView::OnPreparePrintingполе "Замените содержимое функции" следующим кодом:

      if (!CView::OnPreparePrinting(pInfo))
          return FALSE;
      
      if (!COleDocObjectItem::OnPreparePrinting(this, pInfo))
          return FALSE;
      
      return TRUE;
      

    OnPreparePrinting обеспечивает поддержку печати. Этот код заменяет DoPreparePrinting, который является подготовкой печати по умолчанию.

    Активная схема хранения документов обеспечивает улучшенную схему печати:

    • Сначала можно вызвать активный документ через его IPrint интерфейс и сообщить ему, чтобы распечатать его. Это отличается от предыдущего объекта OLE, в котором контейнеру пришлось отобразить изображение содержащегося элемента на объекте принтера CDC .

    • Если это не удается, сообщите автономному элементу, чтобы распечатать его через его IOleCommandTarget интерфейс.

    • Если это не удается, сделайте собственную отрисовку элемента.

    Статические функции-члены COleDocObjectItem::OnPrint и COleDocObjectItem::OnPreparePrinting, как реализовано в предыдущем коде, обрабатывают эту улучшенную схему печати.

  11. Добавьте любую реализацию собственного и создайте приложение.

См. также

Вложение активного документа