Вообще-то всё просто: выводишь как и на экран.
void CMapView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
//Некоторые предварительные вычисления
POINT curPos;
double mask;
CPoemDoc* curDoc = GetDocument();
double koef = curDoc->m_koef;
CRect curRect;
GetClientRect(curRect);
//Выводится только часть изображения
curPos.x = curDoc->m_curPos.x - curRect.Width() * koef/2;
curPos.y = curDoc->m_curPos.y - curRect.Height() * koef/2;
CSize sizeDib = m_dibFile.GetDimensions();
CSize totalSize; // = m_dibFile.GetDimensions();
mask = 4500/curRect.Width();
totalSize.cx = curRect.Width() * mask;
totalSize.cy = curRect.Height() * mask;
SetScrollSizes(MM_TEXT,totalSize,CSize(400, 400), CSize(50, 50));
this->ScrollToPosition(CPoint(0,0));
StretchDIBits(pDC->GetSafeHdc(),0,0,totalSize.cx,totalSize.cy,curPos.x,sizeDib.cy-curPos.y-curRect.Height()*koef,koef*curRect.Width(),koef*curRect.Height(),m_dib File.m_lpImage,(LPBITMAPINFO) m_dibFile.m_lpBMIH,DIB_RGB_COLORS,SRCCOPY);
/*здесь у меня ещё другие слои накладываются и текст*/
curDoc->chPos = true;
}
|