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


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

Самый простой и самый рекомендуемый способ создания активного приложения контейнера документов — создать приложение контейнера 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. Добавьте любую реализацию по своему усмотрению и создайте приложение.

См. также

Активное содержимое документа