Шаг 115 - Напечатаем ???

При обычном предварительном просмотре изображение формируется функцией OnDraw. В данном случае так сделать мы не можем. Ну не сможем и ладно. Можно по другому. Для начала установим количество страниц. У нас она будет одна. Я уже писал как это делать.

void CTestMemoView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	pInfo->SetMaxPage(1);
};
Куда же нам поместить печать карточки ???? Есть куда !!! В OnPrint мы спокойно можем поместить. Там тоже можно печатать и не только колонтитулы. Помещаем.
void CTestMemoView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{
	pDC->Rectangle(10,10,1000,1000); 
	pDC->TextOut(40,100,m_pSet->m_NAME); 
	pDC->TextOut(40,200,m_pSet->m_DAY);  
	CRecordView::OnPrint(pDC, pInfo);
};
Как видите всё оказалось по идиотски просто.... Мы ссылаемся на наш m_pSet и получаем поля текущей записи. Вся сложность была в том где печатать.

Это практически всё :-) Запускаем и смотрим.

115_1.gif (4534 b)

А под конец маленький прикол в плане того, что в Microsoft работают тоже люди. Давайте проведем эксперимент. Закоментируйте установку количества страниц.

void CTestMemoView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
//	pInfo->SetMaxPage(1);
}

Запустите приложение и скажите, что будете смотреть две страницы.

115_2.gif (3358 b)

Всё нормально. Количество страниц не определенно. Так теперь раскоментируйте установку, скомпилируйте и запустите приложение снова. Посмотрите на предварительном просмотре.

115_3.gif (3203 b)

Каково ???? :-)))) Если Вы нажмете одна страница, то она погаснет навсегда. Это доказывает, что было задумано не так, а данный момент просто проспали ;-)))


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 15.02.2000