Поделиться через


CRichEditCtrl::FormatRange

Форматирует диапазон текста в элементе управления расширенного редактирования для конкретного устройства.

long FormatRange( 
   FORMATRANGE* pfr, 
   BOOL bDisplay = TRUE  
);

Параметры

  • pfr
    Указатель на структуру FORMATRANGE, которая содержит информацию об устройстве вывода. NULL указывает, что кэшированные данные в элементе управления расширенного редактирования можно освободить.

  • bDisplay
    Указывает, что текст должен обработано. Если FALSE, текст просто измеряется.

Возвращаемое значение

Индекс последнего символа, с размерами в области плюс один.

Заметки

Как правило, этот вызов за вызовом DisplayBand.

Дополнительные сведения см. в разделе сообщение EM_FORMATRANGE и структуру FORMATRANGE в Windows SDK.

Пример

// First obtain a pointer to a printer DC.
CPageSetupDialog psDlg;
if (IDOK == psDlg.DoModal())
{
   CDC* pMyPrinterDC = CDC::FromHandle(psDlg.CreatePrinterDC());

   FORMATRANGE fr;

   // Get the page width and height from the printer. 
   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);

   // Format the text and render it to the printer.
   fr.hdc = pMyPrinterDC->m_hDC;
   fr.hdcTarget = pMyPrinterDC->m_hDC;
   fr.rc = rcPage;
   fr.rcPage = rcPage;
   fr.chrg.cpMin = 0;
   fr.chrg.cpMax = -1;
   m_myRichEditCtrl.FormatRange(&fr, TRUE);

   // Update the display with the new formatting.
   RECT rcClient;
   m_myRichEditCtrl.GetClientRect(&rcClient);
   m_myRichEditCtrl.DisplayBand(&rcClient);   

   pMyPrinterDC->DeleteDC();
}

Требования

Header: afxcmn.h

См. также

Ссылки

Класс CRichEditCtrl

Диаграмма иерархии

CRichEditCtrl::DisplayBand