віртуальний 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