многостраничная печать и отступы Cricheditctrl

  • Автор темы Dope
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Dope

Гость
#1
Всем здрасьте.

Надо сделать печать текста из CRichEditCtrl....
печатаь он печатает, но без отступов по краям, сверху и снизу(текст печатаеться на всю страницы, а хотелось бы отступы(как ворд печатает)), а также не работает многостраничная печать(оно и понятно цикла нет, но не ясно какой цикл нужен.. ).
Подскажите плз, что нужно добавит в нижеописсанном коде, чтобы заработала многостраничная печать и появились отступы...
код реализации печати:

CRichEditCtrl* pmyRichEditCtrl = &m_rtext;
СDC* pMyPrinterDC;
CPrintDialog dlg(FALSE);
if (dlg.DoModal() == IDOK)
{
HDC hdc = dlg.GetPrinterDC();
ASSERT(hdc);
pMyPrinterDC = CDC::FromHandle(hdc);

DOCINFO docinfo;
memset(&docinfo, 0, sizeof(docinfo));
docinfo.cbSize = sizeof(docinfo);
docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");
pMyPrinterDC->StartDoc(&docinfo);
pMyPrinterDC->StartPage();
FORMATRANGE fr;

long lPageWidth = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALWIDTH),1440,
pMyPrinterDC->GetDeviceCaps(LOGPIXELSX));
long lPageHeight = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALHEIGHT),
1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSY));
CRect rcPage(0, 0, lPageWidth, lPageHeight);

fr.hdc = pMyPrinterDC->m_hDC;
fr.hdcTarget = pMyPrinterDC->m_hDC;
fr.rc = rcPage;
fr.rcPage = rcPage;
fr.chrg.cpMin = 0;
fr.chrg.cpMax = -1;
pmyRichEditCtrl->FormatRange(&fr, TRUE);
RECT rcClient;
pmyRichEditCtrl->GetClientRect(&rcClient);
pmyRichEditCtrl->DisplayBand(&rcClient);
pMyPrinterDC->EndPage();
pMyPrinterDC->EndDoc();
}
 
Статус
Закрыто для дальнейших ответов.