Шаг 1096 - CDocument::OnNewDocument

virtual BOOL OnNewDocument( );

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

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

Пример

// Следующие примеры иллюстрируют альтернативные методы
// Инициализация объекта документа.
// Метод 1: В MDI прикладной программе, самое простое место, чтобы делать 
// инициализация находится в конструкторе документа. Рамка 
// всегда создает новый объект документа для File New или File Open.

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

// Метод 2: В SDI или MDI прикладной программе, делайте всю инициализацию 
// В перегруженном OnNewDocument, 
// Инициализация действительно сохранена File Save
// и полностью восстановленный на File Open, через преобразование в последовательную форму.

BOOL CMyDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// Делайте инициализацию нового документа здесь.

	return TRUE;
}

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

BOOL CMyDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	InitMyDocument(); // Вызовите Вашу общедоступную  функцию инициализации
	// Если ваш новый объект документа требует дополнительной инициализации
	// нет необходимости, когда документ - восстанавливается с диска через File Open,
	// затем выполните ту дополнительную инициализацию здесь.

	return TRUE;
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.02.2002