Шаг 84 - Тренировка приложение PR7

Создание проекта

Проект из прошлого шага.

Создаем код

Функция OnBeginPrint.

void CPr4View::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
int PageHeight = pDC->GetDeviceCaps(VERTRES);
int LogPixel = pDC->GetDeviceCaps(LOGPIXELSY);
int RecHeigth = (int)(2.2*LogPixel);
int NumPage = 10 * RecHeigth / PageHeight+1; // считаем
pInfo->SetMaxPage(NumPage); // установка количество страниц
}

Функция OnPrepareDC

void CPr4View::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{
if (pDC->IsPrinting()) // печатам ?
{
int PageHeigth = pDC->GetDeviceCaps(VERTRES);
int OriginY = PageHeigth*(pInfo->m_nCurPage-1); // исход из какая страница
pDC->SetViewportOrg(0,- OriginY); // смещение по Y
}
CView::OnPrepareDC(pDC, pInfo);
}

Вот результат.

84_1.gif (4869 b)

Описание

Берем высоту, умножаем её на текущую страницу pInfo->m_nCurPage-1. Минус единица от того, что нумерация страниц с 1, это и есть смещение по Y.


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