Partager via


CRichEditCtrl::FormatRange

Met en forme une plage de texte dans un contrôle RichEdit pour un appareil spécifique.

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

Paramètres

  • pfr
    Pointeur vers la structure de FORMATRANGE qui contient des informations sur le périphérique de sortie. NULL indique que les informations mises en cache dans le contrôle RichEdit peuvent être libérées.

  • bDisplay
    Indique si le texte est affiché. Si FALSE, le texte est simplement mesuré.

Valeur de retour

Index du dernier caractère qui s'ajuste dans la région plus une.

Notes

En général, cet appel est suivi par un appel à DisplayBand.

Pour plus d'informations, consultez le message d' EM_FORMATRANGE et la structure de FORMATRANGE dans Kit de développement logiciel Windows.

Exemple

// 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();
}

Configuration requise

Header: afxcmn.h

Voir aussi

Référence

CRichEditCtrl, classe

Graphique de la hiérarchie

CRichEditCtrl::DisplayBand