CDocument::OnNewDocument

Виртуальный BOOL OnNewDocument ( );

Возвращаемое значение

Ненулевое значение, если документ был успешно инициализирован; в противном случае 0.

Примечания

Вызывается в рамках как часть файла новой команды. Реализация по умолчанию эта функция вызывает функцию-член DeleteContents для обеспечения пустой и затем знаменует новый документ как чистого документа. Переопределите эту функцию для инициализации структуры данных для нового документа. Следует вызывать версию базового класса этой функции из ваших переопределения.

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

Пример

/ / Следующие примеры иллюстрируют альтернативные методы
/ / инициализации объекта документа.

/ / Метод 1: В приложении MDI, простой место для ведения / / инициализации в документе constructor.nbsp; Рамки / / всегда создает новый объект документа для новых файлов или открытия файла.

CMyDoc::CMyDoc()
{
   / / Выполняют инициализацию MDI документа здесь.
   // ...
}

/ / Метод 2: В приложении MDI или SDI, делать все инициализации / / в переопределении On&NewDocument, если вы уверены, что
/ / инициализации фактически сохраняется после сохранения файла
/ / и полностью восстановленные после открытия файла через сериализации.

BOOL CMyDoc::OnNewDocument()
{
   Если (!.CDocument::OnNewDocument())
      вернуть значение FALSE;

/ / Выполняют инициализацию нового документа.

Возвращает значение TRUE;
}

/ / Метод 3: если инициализации вашего документа не является
/ / эффективно сохранена и восстановлена путем сериализации (во время сохранения файла
/ / и открытие файла), затем реализовать инициализации в сингл
/ / функции (с именем InitMyDocument в этом примере).  Позвонить
/ / Общие функции инициализации из переопределения обеих
/ / OnNewDocument и OnOpenDocument.

BOOL CMyDoc::OnNewDocument()
{
   Если (!.CDocument::OnNewDocument())
      вернуть значение FALSE;

InitMyDocument(); / / вызова функции общей инициализации

/ / Если ваш новый объект документа требует дополнительной инициализации
   / / не обязательно при десериализации документа через открытый файл
   / / затем выполнить дополнительные инициализации здесь.

Возвращает значение TRUE;
}

Обзор CDocument |nbsp; Члены класса | Иерархическая схема

См. также CDocument::CDocument, CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::OnOpenDocument, CDocument::OnSaveDocument

Index