Создание приложения с контейнером активных документов
Самый простой и самый рекомендуемый способ создания активного приложения контейнера документов — создать приложение контейнера MFC EXE с помощью мастера приложений MFC, а затем изменить приложение для поддержки активного хранения документов.
Создание активного приложения контейнера документов
В меню "Файл" щелкните "Проект" в подменю "Создать".
В левой области выберите тип проекта Visual C++ .
Выберите приложение MFC в правой области.
Назовите проект MyProj, нажмите кнопку "ОК".
Выберите страницу поддержки составных документов.
Выберите параметр "Контейнер" или "Контейнер" или "Полный сервер".
Установите флажок "Активный контейнер документов" проверка.
Нажмите кнопку Готово.
Когда мастер приложений MFC завершит создание приложения, откройте следующие файлы с помощью Обозреватель решений:
- MyProjview.cpp
В 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
, как реализовано в предыдущем коде, обрабатывают эту улучшенную схему печати.Добавьте любую реализацию собственного и создайте приложение.