При обычном предварительном просмотре изображение формируется функцией 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 и получаем поля текущей записи. Вся сложность была в том где печатать.
Это практически всё :-) Запускаем и смотрим.
А под конец маленький прикол в плане того, что в Microsoft работают тоже люди. Давайте проведем эксперимент. Закоментируйте установку количества страниц.
void CTestMemoView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) { // pInfo->SetMaxPage(1); }
Запустите приложение и скажите, что будете смотреть две страницы.
Всё нормально. Количество страниц не определенно. Так теперь раскоментируйте установку, скомпилируйте и запустите приложение снова. Посмотрите на предварительном просмотре.
Каково ???? :-)))) Если Вы нажмете одна страница, то она погаснет навсегда. Это доказывает, что было задумано не так, а данный момент просто проспали ;-)))