CDocument::OnNewDocument

віртуальний BOOL OnNewDocument ( );

Значення, яке повертається

Ненульовий, якщо не ініціалізовано документа; в іншому випадку 0.

Зауваження

Називається рамках як частину команда створити файл. За замовчуванням реалізація цієї функції викликає функцію член DeleteContents для забезпечення порожній документ і потім позначає новий документ як чисті. Пересилити цю функцію, щоб ініціалізувати структуру даних для нового документа. Телефонуйте з вашого перекрити базового класу версія цієї функції.

Якщо користувач вибирає команда створити файл у додатку SDI, рамках використовує цю функцію для Реініціалізація наявний документ, а не створювати новий. Якщо користувач вибирає новий файл в декількох додатків інтерфейс (MDI) документ, в рамках створює новий документ кожен раз а потім викликає цієї функції ініціалізації його. Помістіть ваш код ініціалізації у цієї функції, а не в конструктор нового файлу команди ефективними у SDI додатків.

Приклад

/ / Нижче проілюстровано альтернативні методи
/ / Ініціалізація документ.

/ / Спосіб 1: В застосунку MDI, найпростіше місце, щоб зробити / / Ініціалізація в документі constructor.nbsp; Рамках / / завжди створює новий об'єкт документ для нового файлу або відкритого файлу.

CMyDoc::CMyDoc()
{
   / / Зробити ініціалізації MDI документ тут.
   // ...
}

/ / Спосіб 2: У додатку SDI або MDI робити всі ініціалізації / / у заміщенням On&NewDocument, якщо ви впевнені, що
/ / на ініціалізації ефективно зберігаються після збереження файлу
/ / і повністю Відновлений після відкриття файлу за допомогою серіалізацією.

BOOL CMyDoc::OnNewDocument()
{
   Якщо (!.CDocument::OnNewDocument())
      Повертає FALSE;

/ / Зробити ініціалізації новий документ тут.

повертає TRUE;
}

/ / Спосіб 3: Якщо ініціалізації документа не
/ / ефективно збережені і відновлені серіалізацією (під час збереження файлу
/ / та відкриття файлу), потім реалізувати на ініціалізації в одному
/ / Функція (названий InitMyDocument в цьому прикладі).  Телефонуйте на
/ / загальні функції ініціалізації від зміни обох
/ / OnNewDocument і OnOpenDocument.

BOOL CMyDoc::OnNewDocument()
{
   Якщо (!.CDocument::OnNewDocument())
      Повертає FALSE;

InitMyDocument(); / / ваш функцію спільних ініціалізації

/ / Якщо ваш новий об'єкт документ вимагає додаткових ініціалізації
   / / не потрібно, коли документ deserialized через відкриття файлу
   / / виконати цю додаткову строку ініціалізації тут.

повертає TRUE;
}

Огляд CDocument |nbsp; Члени класу | Ієрархічна діаграма

Дивіться також CDocument::CDocument, CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::OnOpenDocument, CDocument::OnSaveDocument

Index