www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  http://tikitak.narod.ru ---- Главная страница сайта

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

Нам нужно создать точно такой проект, как и при тренировке PR6. Только дайте ему имя PrintLarge.

Функция OnDraw класса вида.

/////////////////////////////////////////////////////////////////////////////
// CPrintLargeView drawing

void CPrintLargeView::OnDraw(CDC* pDC)
{
	CPrintLargeDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	pDC->SetMapMode(MM_LOENGLISH); 
	for (int x=0;x<10;x++)
	{
	pDC->Rectangle(20,-(20+x*200),220,-(200+x*200)); 
	}

}
Функция OnBeginPrint
void CPrintLargeView::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
/////////////////////////////////////////////////////////////////////////////
// CPrintLargeView message handlers

void CPrintLargeView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{
	if (pDC->IsPrinting())
	{
		int PageHeigth = pDC->GetDeviceCaps(VERTRES);
		int OriginY = PageHeigth*(pInfo->m_nCurPage-1);
		pDC->SetViewportOrg(0,- OriginY);
	}
	
	CView::OnPrepareDC(pDC, pInfo);
}
Берем высоту, уможаем её на текущую страницу pInfo->m_nCurPage-1. Минус единица от того, что нумерация страниц с 1, это и есть смещение по Y.

А вот и результат

step84.gif (2729 b)


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

By Artem.
Используются технологии uCoz
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz