Share via


CRichEditView, classe

Avec CRichEditDoc et CRichEditCntrItem, fournit les fonctionnalités du contrôle d’édition enrichi dans le contexte de l’architecture de la vue de document de MFC.

Syntaxe

class CRichEditView : public CCtrlView

Membres

Constructeurs publics

Nom Description
CRichEditView ::CRichEditView Construit un objet CRichEditView.

Méthodes publiques

Nom Description
CRichEditView ::AdjustDialogPosition Déplace une boîte de dialogue afin qu’elle ne masque pas la sélection actuelle.
CRichEditView ::CanPaste Indique si le Presse-papiers contient des données qui peuvent être collées dans la vue d’édition enrichie.
CRichEditView ::D oPaste Colle un élément OLE dans cette vue d’édition enrichie.
CRichEditView ::FindText Recherche le texte spécifié, en appelant le curseur d’attente.
CRichEditView ::FindTextSimple Recherche le texte spécifié.
CRichEditView ::GetCharFormatSelection Récupère les attributs de mise en forme des caractères pour la sélection actuelle.
CRichEditView ::GetDocument Récupère un pointeur vers le CRichEditDoc associé.
CRichEditView ::GetInPlaceActiveItem Récupère l’élément OLE actuellement actif dans la vue d’édition enrichie.
CRichEditView ::GetMargins Récupère les marges de cette vue d’édition enrichie.
CRichEditView ::GetPageRect Récupère le rectangle de page pour cet affichage d’édition enrichi.
CRichEditView ::GetPaperSize Récupère le format de papier pour cette vue d’édition enrichie.
CRichEditView ::GetParaFormatSelection Récupère les attributs de mise en forme des paragraphes pour la sélection actuelle.
CRichEditView ::GetPrintRect Récupère le rectangle d’impression pour cet affichage d’édition enrichi.
CRichEditView ::GetPrintWidth Récupère la largeur d’impression de cet affichage d’édition enrichi.
CRichEditView ::GetRichEditCtrl Récupère le contrôle d’édition enrichi.
CRichEditView ::GetSelectedItem Récupère l’élément sélectionné à partir de l’affichage d’édition enrichi.
CRichEditView ::GetTextLength Récupère la longueur du texte dans la vue d’édition enrichie.
CRichEditView ::GetTextLengthEx Récupère le nombre de caractères ou d’octets dans la vue d’édition enrichie. Liste d’indicateurs développée pour la méthode de détermination de la longueur.
CRichEditView ::InsertFileAsObject Insère un fichier en tant qu’élément OLE.
CRichEditView ::InsertItem Insère un nouvel élément en tant qu’élément OLE.
CRichEditView ::IsRichEditFormat Indique si le Presse-papiers contient des données dans un format enrichi de modification ou de texte.
CRichEditView ::OnCharEffect Bascule la mise en forme des caractères pour la sélection actuelle.
CRichEditView ::OnParaAlign Modifie l’alignement des paragraphes.
CRichEditView ::OnUpdateCharEffect Mises à jour l’interface utilisateur de commande pour les fonctions membres publiques de caractères.
CRichEditView ::OnUpdateParaAlign Mises à jour l’interface utilisateur de commande pour les fonctions membres publiques de paragraphe.
CRichEditView ::P rintInsideRect Met en forme le texte spécifié dans le rectangle donné.
CRichEditView ::P rintPage Met en forme le texte spécifié dans la page donnée.
CRichEditView ::SetCharFormat Définit les attributs de mise en forme des caractères pour la sélection actuelle.
CRichEditView ::SetMargins Définit les marges de cette vue d’édition enrichie.
CRichEditView ::SetPaperSize Définit la taille du papier pour cette vue d’édition enrichie.
CRichEditView ::SetParaFormat Définit les attributs de mise en forme des paragraphes pour la sélection actuelle.
CRichEditView ::TextNotFound Réinitialise l’état de recherche interne du contrôle.

Méthodes protégées

Nom Description
CRichEditView ::GetClipboardData Récupère un objet Presse-papiers pour une plage dans cette vue d’édition enrichie.
CRichEditView ::GetContextMenu Récupère un menu contextuel à utiliser sur un bouton droit vers le bas.
CRichEditView ::Isselected Indique si l’élément OLE donné est sélectionné ou non.
CRichEditView ::OnFindNext Recherche l’occurrence suivante d’une sous-chaîne.
CRichEditView ::OnInitialUpdate Actualise une vue lorsqu’elle est attachée pour la première fois à un document.
CRichEditView ::OnPasteNativeObject Récupère des données natives à partir d’un élément OLE.
CRichEditView ::OnPrinterChanged Définit les caractéristiques d’impression sur l’appareil donné.
CRichEditView ::OnReplaceAll Remplace toutes les occurrences d’une chaîne donnée par une nouvelle chaîne.
CRichEditView ::OnReplaceSel Remplace la sélection actuelle.
CRichEditView ::OnTextNotFound Gère la notification utilisateur indiquant que le texte demandé n’a pas été trouvé.
CRichEditView ::QueryAcceptData Requêtes pour voir les données sur le IDataObject.
CRichEditView ::WrapChanged Ajuste l’appareil de sortie cible pour cette vue d’édition enrichie, en fonction de la valeur de m_nWordWrap.

Membres de données publics

Nom Description
CRichEditView ::m_nBulletIndent Indique la quantité de retrait pour les listes de puces.
CRichEditView ::m_nWordWrap Indique les contraintes d’habillage du mot.

Notes

Un « contrôle d’édition enrichi » est une fenêtre dans laquelle l’utilisateur peut entrer et modifier du texte. Le texte peut être affecté à un caractère et à une mise en forme de paragraphe, et peut inclure des objets OLE incorporés. Les contrôles d’édition enrichi fournissent une interface de programmation pour la mise en forme du texte. Toutefois, une application doit implémenter tous les composants d’interface utilisateur nécessaires pour rendre les opérations de mise en forme accessibles à l’utilisateur.

CRichEditView conserve le texte et la caractéristique de mise en forme du texte. CRichEditDoc gère la liste des éléments clients OLE qui se trouvent dans l’affichage. CRichEditCntrItem fournit un accès côté conteneur à l’élément client OLE.

Ce contrôle commun Windows (et par conséquent les classes CRichEditCtrl et associées) est disponible uniquement pour les programmes exécutés sous Windows 95/98 et Windows NT versions 3.51 et ultérieures.

Pour obtenir un exemple d’utilisation d’une vue d’édition enrichie dans une application MFC, consultez l’exemple d’application WORDPAD .

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CView

CCtrlView

CRichEditView

Spécifications

En-tête : afxrich.h

CRichEditView ::AdjustDialogPosition

Appelez cette fonction pour déplacer la boîte de dialogue donnée afin qu’elle ne masque pas la sélection actuelle.

void AdjustDialogPosition(CDialog* pDlg);

Paramètres

pDlg
Pointeur vers un CDialog objet.

CRichEditView ::CanPaste

Appelez cette fonction pour déterminer si le Presse-papiers contient des informations qui peuvent être collées dans cette vue d’édition enrichie.

BOOL CanPaste() const;

Valeur de retour

Différent de zéro si le Presse-papiers contient des données dans un format que cette vue d’édition enrichie peut accepter ; sinon, 0.

CRichEditView ::CRichEditView

Appelez cette fonction pour créer un CRichEditView objet.

CRichEditView();

CRichEditView ::D oPaste

Appelez cette fonction pour coller l’élément OLE dans dataobj dans ce document/vue enrichi.

void DoPaste(
    COleDataObject& dataobj,
    CLIPFORMAT cf,
    HMETAFILEPICT hMetaPict);

Paramètres

dataobj
COleDataObject contenant les données à coller.

Cf
Format de Presse-papiers souhaité.

hMetaPict
Métafichier qui représente l’élément à coller.

Notes

L’infrastructure appelle cette fonction dans le cadre de l’implémentation par défaut de QueryAcceptData.

Cette fonction détermine le type de collage en fonction des résultats du gestionnaire pour Coller spécial. Si cf est 0, le nouvel élément utilise la représentation emblématique actuelle. Si cf est différent de zéro et hMetaPict n’est pas NULL, le nouvel élément utilise hMetaPict pour sa représentation.

CRichEditView ::FindText

Appelez cette fonction pour rechercher le texte spécifié et le définir comme la sélection actuelle.

BOOL FindText(
    LPCTSTR lpszFind,
    BOOL bCase = TRUE,
    BOOL bWord = TRUE,
    BOOL bNext = TRUE);

Paramètres

lpszFind
Contient la chaîne à rechercher.

bCase
Indique si la recherche respecte la casse.

bWord
Indique si la recherche doit correspondre uniquement à des mots entiers, et non à des parties de mots.

bNext
Indique la direction de la recherche. Si la valeur est TRUE, la direction de la recherche est vers la fin de la mémoire tampon. Si la valeur est FALSE, la direction de la recherche est vers le début de la mémoire tampon.

Valeur de retour

Différent de zéro si le texte lpszFind est trouvé ; sinon, 0.

Notes

Cette fonction affiche le curseur d’attente pendant l’opération de recherche.

Exemple

void CMyRichEditView::OnReplaceAll(LPCTSTR lpszFind, LPCTSTR lpszReplace,
   BOOL bCase, BOOL bWord)
{
   CWaitCursor wait;
   // no selection or different than what we are looking for
   if (!FindText(lpszFind, bCase, bWord))
   {
      OnTextNotFound(lpszFind);
      return;
   }

   GetRichEditCtrl().HideSelection(TRUE, FALSE);
   m_nNumReplaced = 0;
   do
   {
      GetRichEditCtrl().ReplaceSel(lpszReplace);
      m_nNumReplaced++;  // Record the number of replacements

   } while (FindTextSimple(lpszFind));
   GetRichEditCtrl().HideSelection(FALSE, FALSE);
}

CRichEditView ::FindTextSimple

Appelez cette fonction pour rechercher le texte spécifié et le définir comme la sélection actuelle.

BOOL FindTextSimple(
    LPCTSTR lpszFind,
    BOOL bCase = TRUE,
    BOOL bWord = TRUE,
    BOOL bNext = TRUE);

Paramètres

lpszFind
Contient la chaîne à rechercher.

bCase
Indique si la recherche respecte la casse.

bWord
Indique si la recherche doit correspondre uniquement à des mots entiers, et non à des parties de mots.

bNext
Indique la direction de la recherche. Si la valeur est TRUE, la direction de la recherche est vers la fin de la mémoire tampon. Si la valeur est FALSE, la direction de la recherche est vers le début de la mémoire tampon.

Valeur de retour

Différent de zéro si le texte lpszFind est trouvé ; sinon, 0.

Exemple

Consultez l’exemple de CRichEditView ::FindText.

CRichEditView ::GetCharFormatSelection

Appelez cette fonction pour obtenir les attributs de mise en forme des caractères de la sélection actuelle.

CHARFORMAT2& GetCharFormatSelection();

Valeur de retour

Structure CHARFORMAT2 qui contient les attributs de mise en forme des caractères de la sélection actuelle.

Notes

Pour plus d’informations, consultez le message EM_GETCHARFORMAT et la structure CHARFORMAT2 dans le Kit de développement logiciel (SDK) Windows.

Exemple

void CMyRichEditView::OnCharUnderline()
{
   CHARFORMAT2 cf;
   cf = GetCharFormatSelection();

   if (!(cf.dwMask & CFM_UNDERLINE) || !(cf.dwEffects & CFE_UNDERLINE))
      cf.dwEffects = CFE_UNDERLINE;
   else
      cf.dwEffects = 0;

   cf.dwMask = CFM_UNDERLINE;
   SetCharFormat(cf);
}

CRichEditView ::GetClipboardData

L’infrastructure appelle cette fonction dans le cadre du traitement de IRichEditOleCallback ::GetClipboardData.

virtual HRESULT GetClipboardData(
    CHARRANGE* lpchrg,
    DWORD dwReco,
    LPDATAOBJECT lpRichDataObj,
    LPDATAOBJECT* lplpdataobj);

Paramètres

lpchrg
Pointeur vers la structure CHARRANGE spécifiant la plage de caractères (et les éléments OLE) à copier dans l’objet de données spécifié par lplpdataobj.

dwReco
Indicateur d’opération du Presse-papiers. Il peut s’agir de l’une de ces valeurs.

  • RECO_COPY Copier dans le Presse-papiers.

  • RECO_CUT Couper dans le Presse-papiers.

  • RECO_DRAG opération glisser-déplacer (glisser-déplacer).

  • RECO_DROP opération de déplacement (glisser-déplacer).

  • RECO_PASTE Coller à partir du Presse-papiers.

lpRichDataObj
Pointeur vers un objet IDataObject contenant les données du Presse-papiers à partir du contrôle d’édition enrichi ( IRichEditOle ::GetClipboardData).

lplpdataobj
Pointeur vers la variable de pointeur qui reçoit l’adresse de l’objet IDataObject représentant la plage spécifiée dans le paramètre lpchrg . La valeur de lplpdataobj est ignorée si une erreur est retournée.

Valeur de retour

Valeur HRESULT signalant la réussite de l’opération. Pour plus d’informations sur HRESULT, consultez Structure des codes d’erreur COM dans le Kit de développement logiciel (SDK) Windows.

Notes

Si la valeur de retour indique la réussite, IRichEditOleCallback::GetClipboardData renvoie l’accès IDataObject par lplpdataobj ; sinon, il renvoie celui accessible par lpRichDataObj. Remplacez cette fonction pour fournir vos propres données presse-papiers. L’implémentation par défaut de cette fonction retourne E_NOTIMPL.

Il s’agit d’un élément substituable avancé.

Pour plus d’informations, consultez IRichEditOle ::GetClipboardData, IRichEditOleCallback ::GetClipboardData et CHARRANGE dans le Kit de développement logiciel (SDK) Windows et voir IDataObject dans le Kit de développement logiciel (SDK) Windows.

CRichEditView ::GetContextMenu

L’infrastructure appelle cette fonction dans le cadre du traitement de IRichEditOleCallback ::GetContextMenu.

virtual HMENU GetContextMenu(
    WORD seltyp,
    LPOLEOBJECT lpoleobj,
    CHARRANGE* lpchrg);

Paramètres

seltyp
Type de sélection. Les valeurs de type de sélection sont décrites dans la section Notes.

lpoleobj
Pointeur vers une OLEOBJECT structure spécifiant le premier objet OLE sélectionné si la sélection contient un ou plusieurs éléments OLE. Si la sélection ne contient aucun élément, lpoleobj a la valeur NULL. La OLEOBJECT structure contient un pointeur vers une table v-table d’objets OLE.

lpchrg
Pointeur vers une structure CHARRANGE contenant la sélection actuelle.

Valeur de retour

Gérez le menu contextuel.

Notes

Cette fonction fait généralement partie du traitement du bouton droit vers le bas.

Le type de sélection peut être n’importe quelle combinaison des indicateurs suivants :

  • SEL_EMPTY Indique qu’il n’existe aucune sélection actuelle.

  • SEL_TEXT Indique que la sélection actuelle contient du texte.

  • SEL_OBJECT Indique que la sélection actuelle contient au moins un élément OLE.

  • SEL_MULTICHAR Indique que la sélection actuelle contient plusieurs caractères de texte.

  • SEL_MULTIOBJECT Indique que la sélection actuelle contient plusieurs objets OLE.

L’implémentation par défaut retourne NULL. Il s’agit d’un élément substituable avancé.

Pour plus d’informations, consultez IRichEditOleCallback ::GetContextMenu et CHARRANGE dans le Kit de développement logiciel (SDK) Windows.

CRichEditView ::GetDocument

Appelez cette fonction pour obtenir un pointeur vers l’élément CRichEditDoc associé à cette vue.

CRichEditDoc* GetDocument() const;

Valeur de retour

Pointeur vers un objet CRichEditDoc associé à votre CRichEditView objet.

CRichEditView ::GetInPlaceActiveItem

Appelez cette fonction pour obtenir l’élément OLE actuellement activé en place dans cet CRichEditView objet.

CRichEditCntrItem* GetInPlaceActiveItem() const;

Valeur de retour

Pointeur vers l’objet CRichEditCntrItem actif unique sur place dans cette vue d’édition enrichie ; NULL s’il n’existe aucun élément OLE actuellement dans l’état actif sur place.

CRichEditView ::GetMargins

Appelez cette fonction pour récupérer les marges actuelles utilisées dans l’impression.

CRect GetMargins() const;

Valeur de retour

Marges utilisées dans l’impression, mesurées en MM_TWIPS.

CRichEditView ::GetPageRect

Appelez cette fonction pour obtenir les dimensions de la page utilisée dans l’impression.

CRect GetPageRect() const;

Valeur de retour

Limites de la page utilisée dans l’impression, mesurées en MM_TWIPS.

Notes

Cette valeur est basée sur la taille du papier.

CRichEditView ::GetPaperSize

Appelez cette fonction pour récupérer le format de papier actuel.

CSize GetPaperSize() const;

Valeur de retour

Taille du papier utilisé dans l’impression, mesurée en MM_TWIPS.

Exemple

void CMyRichEditView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
   UNREFERENCED_PARAMETER(pInfo);

   // Get the current paper size and construct an actual printing
   // rectangle by leaving out one half inch margin from each side.
   CSize sizePaper = GetPaperSize();
   CRect rectMargins(720, 720, sizePaper.cx - 720,
      sizePaper.cy - 720);

   // Need to set the margins when printing from CRichEditView
   SetMargins(rectMargins);

   // Set up three rectangular regions spaced an inch apart
   CRect rectHeader(0, 0, rectMargins.right, 1440);
   CRect rectBody(0, 1440, rectMargins.right, 1440 * 2);
   CRect rectFooter(0, 1440 * 2, rectMargins.right, 1440 * 3);

   // Format the first 10 characters in the buffer.
   int nSavedDC = pDC->SaveDC();
   PrintInsideRect(pDC, rectHeader, 0, 10, TRUE); // characters 0-10
   pDC->RestoreDC(nSavedDC);

   // Format the second 10 characters in the buffer.
   nSavedDC = pDC->SaveDC();
   PrintInsideRect(pDC, rectBody, 10, 20, TRUE); // characters 10-20
   pDC->RestoreDC(nSavedDC);

   // Format the third 10 characters in the buffer.
   nSavedDC = pDC->SaveDC();
   PrintInsideRect(pDC, rectFooter, 20, 30, TRUE); // characters 20-30
   pDC->RestoreDC(nSavedDC);

   //   CRichEditView::OnPrint(pDC, pInfo);
}

CRichEditView ::GetParaFormatSelection

Appelez cette fonction pour obtenir les attributs de mise en forme des paragraphes de la sélection actuelle.

PARAFORMAT2& GetParaFormatSelection();

Valeur de retour

Structure PARAFORMAT2 qui contient les attributs de mise en forme de paragraphe de la sélection actuelle.

Notes

Pour plus d’informations, consultez EM_GETPARAFORMAT message et PARAFORMAT2 structure dans le Kit de développement logiciel (SDK) Windows.

CRichEditView ::GetPrintRect

Appelez cette fonction pour récupérer les limites de la zone d’impression dans le rectangle de page.

CRect GetPrintRect() const;

Valeur de retour

Limites de la zone d’image utilisée dans l’impression, mesurée en MM_TWIPS.

Exemple

void CMyRichEditView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
   CRect rectPrintPage = GetPrintRect();  // Measured in MM_TWIPS

   pInfo->SetMaxPage((m_nDocSizeInInches * 1440) / rectPrintPage.Height());

   CRichEditView::OnBeginPrinting(pDC, pInfo);
}

CRichEditView ::GetPrintWidth

Appelez cette fonction pour déterminer la largeur de la zone d’impression.

int GetPrintWidth() const;

Valeur de retour

Largeur de la zone d’impression, mesurée en MM_TWIPS.

CRichEditView ::GetRichEditCtrl

Appelez cette fonction pour récupérer l’objet CRichEditCtrl associé à l’objet CRichEditView .

CRichEditCtrl& GetRichEditCtrl() const;

Valeur de retour

Objet CRichEditCtrl de cette vue.

Exemple

Consultez l’exemple de CRichEditView ::FindText.

CRichEditView ::GetSelectedItem

Appelez cette fonction pour récupérer l’élément OLE (un CRichEditCntrItem objet) actuellement sélectionné dans cet CRichEditView objet.

CRichEditCntrItem* GetSelectedItem() const;

Valeur de retour

Pointeur vers un objet CRichEditCntrItem sélectionné dans l’objet CRichEditView ; NULL si aucun élément n’est sélectionné dans cette vue.

CRichEditView ::GetTextLength

Appelez cette fonction pour récupérer la longueur du texte dans cet CRichEditView objet.

long GetTextLength() const;

Valeur de retour

Longueur du texte de cet CRichEditView objet.

CRichEditView ::GetTextLengthEx

Appelez cette fonction membre pour calculer la longueur du texte dans cet CRichEditView objet.

long GetTextLengthEx(
    DWORD dwFlags,
    UINT uCodePage = -1) const;

Paramètres

dwFlags
Valeur spécifiant la méthode à utiliser pour déterminer la longueur du texte. Ce membre peut être une ou plusieurs des valeurs répertoriées dans le membre d’indicateurs de GETTEXTLENGTHEX décrit dans le Kit de développement logiciel (SDK) Windows.

uCodePage
Page de codes pour la traduction (CP_ACP pour la page de codes ANSI, 1200 pour Unicode).

Valeur de retour

Nombre de caractères ou d’octets dans le contrôle d’édition. Si des indicateurs incompatibles ont été définis dans dwFlags, cette fonction membre retourne E_INVALIDARG.

Notes

GetTextLengthEx fournit des moyens supplémentaires de déterminer la longueur du texte. Il prend en charge la fonctionnalité Rich Edit 2.0. Pour plus d’informations, consultez About Rich Edit Controls in the Windows SDK.

CRichEditView ::InsertFileAsObject

Appelez cette fonction pour insérer le fichier spécifié (en tant qu’objet CRichEditCntrItem ) dans une vue d’édition enrichie.

void InsertFileAsObject(LPCTSTR lpszFileName);

Paramètres

lpszFileName
Chaîne contenant le nom du fichier à insérer.

CRichEditView ::InsertItem

Appelez cette fonction pour insérer un objet CRichEditCntrItem dans une vue d’édition enrichie.

HRESULT InsertItem(CRichEditCntrItem* pItem);

Paramètres

pItem
Pointeur vers l’élément à insérer.

Valeur de retour

Valeur HRESULT indiquant la réussite de l’insertion.

Notes

Pour plus d’informations sur HRESULT, consultez Structure des codes d’erreur COM dans le Kit de développement logiciel (SDK) Windows.

CRichEditView ::IsRichEditFormat

Appelez cette fonction pour déterminer si cf est un format presse-papiers qui est du texte, du texte enrichi ou du texte enrichi avec des éléments OLE.

static BOOL AFX_CDECL IsRichEditFormat(CLIPFORMAT cf);

Paramètres

Cf
Format du Presse-papiers intéressant.

Valeur de retour

Différent de zéro si cf est un format de montage enrichi ou de presse-papiers de texte.

CRichEditView ::Isselected

Appelez cette fonction pour déterminer si l’élément OLE spécifié est actuellement sélectionné dans cette vue.

virtual BOOL IsSelected(const CObject* pDocItem) const;

Paramètres

pDocItem
Pointeur vers un objet dans la vue.

Valeur de retour

Différent de zéro si l’objet est sélectionné ; sinon 0.

Notes

Remplacez cette fonction si votre classe de vue dérivée a une autre méthode pour gérer la sélection d’éléments OLE.

CRichEditView ::m_nBulletIndent

Mise en retrait des éléments à puces dans une liste ; par défaut, 720 unités, soit 1/2 pouces.

int m_nBulletIndent;

CRichEditView ::m_nWordWrap

Indique le type d’encapsulage de mot pour cette vue d’édition enrichie.

int m_nWordWrap;

Notes

L’une des valeurs suivantes :

  • WrapNone Indique qu’aucun habillage automatique de mot n’est encapsulé.

  • WrapToWindow Indique l’habillage de mots en fonction de la largeur de la fenêtre.

  • WrapToTargetDevice Indique l’habillage de mots en fonction des caractéristiques de l’appareil cible.

Exemple

Consultez l’exemple de CRichEditView ::WrapChanged.

CRichEditView ::OnCharEffect

Appelez cette fonction pour activer/désactiver les effets de mise en forme des caractères pour la sélection actuelle.

void OnCharEffect(
    DWORD dwMask,
    DWORD dwEffect);

Paramètres

dwMask
Effets de mise en forme des caractères à modifier dans la sélection actuelle.

dwEffect
Liste souhaitée des effets de mise en forme des caractères à activer/désactiver.

Notes

Chaque appel à cette fonction bascule les effets de mise en forme spécifiés pour la sélection actuelle.

Pour plus d’informations sur les paramètres dwMask et dwEffect et leurs valeurs potentielles, consultez les membres de données correspondants de CHARFORMAT dans le Kit de développement logiciel (SDK) Windows.

Exemple

void CMyRichEditView::OnItalic()
{
   OnCharEffect(CFM_ITALIC, CFE_ITALIC);
}

CRichEditView ::OnFindNext

Appelé par l’infrastructure lors du traitement des commandes à partir de la boîte de dialogue Rechercher/Remplacer.

virtual void OnFindNext(
    LPCTSTR lpszFind,
    BOOL bNext,
    BOOL bCase,
    BOOL bWord);

Paramètres

lpszFind
Chaîne à rechercher.

bNext
Direction de la recherche : TRUE indique vers le bas ; FAUX, vers le haut.

bCase
Indique si la recherche doit être sensible à la casse.

bWord
Indique si la recherche doit correspondre à des mots entiers uniquement ou non.

Notes

Appelez cette fonction pour rechercher du texte dans le CRichEditView. Remplacez cette fonction pour modifier les caractéristiques de recherche de votre classe d’affichage dérivée.

CRichEditView ::OnInitialUpdate

Appelé par l’infrastructure après que la vue est d’abord attachée au document, mais avant l’affichage initialement affiché.

virtual void OnInitialUpdate();

Notes

L’implémentation par défaut de cette fonction appelle la fonction membre CView ::OnUpdate sans informations d’indicateur (autrement dit, en utilisant les valeurs par défaut 0 pour le paramètre lHint et NULL pour le paramètre pHint ). Remplacez cette fonction pour effectuer une initialisation ponctuelle qui nécessite des informations sur le document. Par exemple, si votre application a des documents de taille fixe, vous pouvez utiliser cette fonction pour initialiser les limites de défilement d’une vue en fonction de la taille du document. Si votre application prend en charge les documents de taille variable, utilisez OnUpdate cette option pour mettre à jour les limites de défilement chaque fois que le document change.

Exemple

Consultez l’exemple de CRichEditView ::m_nWordWrap.

CRichEditView ::OnPasteNativeObject

Utilisez cette fonction pour charger des données natives à partir d’un élément incorporé.

virtual BOOL OnPasteNativeObject(LPSTORAGE lpStg);

Paramètres

lpStg
Pointeur vers un objet I Stockage.

Valeur de retour

Différent de zéro s’il réussit ; sinon, 0 ;

Notes

En règle générale, vous le feriez en créant un COleStreamFile autour du IStorage. Il COleStreamFile peut être attaché à une archive et À CObject ::Serialize appelé pour charger les données.

Il s’agit d’un élément substituable avancé.

Pour plus d’informations, consultez I Stockage dans le Kit de développement logiciel (SDK) Windows.

CRichEditView ::OnParaAlign

Appelez cette fonction pour modifier l’alignement des paragraphes sélectionnés.

void OnParaAlign(WORD wAlign);

Paramètres

wAlign
Alignement de paragraphe souhaité. L’une des valeurs suivantes :

  • PFA_LEFT Aligner les paragraphes avec la marge gauche.

  • PFA_RIGHT Aligner les paragraphes avec la marge droite.

  • PFA_CENTER Centrer les paragraphes entre les marges.

Exemple

void CMyRichEditView::OnParaCenter()
{
   OnParaAlign(PFA_CENTER);
}

CRichEditView ::OnPrinterChanged

Remplacez cette fonction pour modifier les caractéristiques de cette vue d’édition enrichie lorsque l’imprimante change.

virtual void OnPrinterChanged(const CDC& dcPrinter);

Paramètres

dcPrinter
Objet CDC pour la nouvelle imprimante.

Notes

L’implémentation par défaut définit la taille du papier sur la hauteur physique et la largeur de l’appareil de sortie (imprimante). S’il n’existe aucun contexte d’appareil associé à dcPrinter, l’implémentation par défaut définit la taille du papier sur 8,5 sur 11 pouces.

CRichEditView ::OnReplaceAll

Appelé par l’infrastructure lors du traitement des commandes Remplacer toutes les commandes de la boîte de dialogue Remplacer.

virtual void OnReplaceAll(
    LPCTSTR lpszFind,
    LPCTSTR lpszReplace,
    BOOL bCase,
    BOOL bWord);

Paramètres

lpszFind
Texte à remplacer.

lpszReplace
Texte de remplacement.

bCase
Indique si la recherche respecte la casse.

bWord
Indique si la recherche doit sélectionner des mots entiers ou non.

Notes

Appelez cette fonction pour remplacer toutes les occurrences d’un texte donné par une autre chaîne. Remplacez cette fonction pour modifier les caractéristiques de recherche de cette vue.

Exemple

Consultez l’exemple de CRichEditView ::FindText.

CRichEditView ::OnReplaceSel

Appelé par l’infrastructure lors du traitement des commandes Remplacer à partir de la boîte de dialogue Remplacer.

virtual void OnReplaceSel(
    LPCTSTR lpszFind,
    BOOL bNext,
    BOOL bCase,
    BOOL bWord,
    LPCTSTR lpszReplace);

Paramètres

lpszFind
Texte à remplacer.

bNext
Indique la direction de la recherche : TRUE est en panne ; FAUX, vers le haut.

bCase
Indique si la recherche respecte la casse.

bWord
Indique si la recherche doit sélectionner des mots entiers ou non.

lpszReplace
Texte de remplacement.

Notes

Appelez cette fonction pour remplacer une occurrence d’un texte donné par une autre chaîne. Remplacez cette fonction pour modifier les caractéristiques de recherche de cette vue.

CRichEditView ::OnTextNotFound

Appelé par l’infrastructure chaque fois qu’une recherche échoue.

virtual void OnTextNotFound(LPCTSTR lpszFind);

Paramètres

lpszFind
Texte introuvable.

Notes

Remplacez cette fonction pour modifier la notification de sortie d’un MessageBeep.

Pour plus d’informations, consultez MessageBeep dans le Kit de développement logiciel (SDK) Windows.

Exemple

void CMyRichEditView::OnTextNotFound(LPCTSTR lpszFind)
{
   // Replace the beep with a message box
   CString str;
   str.Format(_T("'%s' was not found."), lpszFind);
   AfxMessageBox(str);
}

CRichEditView ::OnUpdateCharEffect

L’infrastructure appelle cette fonction pour mettre à jour l’interface utilisateur de commande pour les commandes d’effet de caractère.

void OnUpdateCharEffect(
    CCmdUI* pCmdUI,
    DWORD dwMask,
    DWORD dwEffect);

Paramètres

pCmdUI
Pointeur vers un objet CCmdUI .

dwMask
Indique le masque de mise en forme des caractères.

dwEffect
Indique l’effet de mise en forme des caractères.

Notes

Le masque dwMask spécifie les attributs de mise en forme des caractères à case activée. Les indicateurs dwEffect répertorient les attributs de mise en forme des caractères à définir/effacer.

Pour plus d’informations sur les paramètres dwMask et dwEffect et leurs valeurs potentielles, consultez les membres de données correspondants de CHARFORMAT dans le Kit de développement logiciel (SDK) Windows.

Exemple

void CMyRichEditView::OnUpdateCharItalicUI(CCmdUI* pCmdUI)
{
   OnUpdateCharEffect(pCmdUI, CFM_ITALIC, CFE_ITALIC);
}

CRichEditView ::OnUpdateParaAlign

L’infrastructure appelle cette fonction pour mettre à jour l’interface utilisateur de commande pour les commandes d’effet de paragraphe.

void OnUpdateParaAlign(
    CCmdUI* pCmdUI,
    WORD wAlign);

Paramètres

pCmdUI
Pointeur vers un objet CCmdUI .

wAlign
Alignement du paragraphe sur case activée. L’une des valeurs suivantes :

  • PFA_LEFT Aligner les paragraphes avec la marge gauche.

  • PFA_RIGHT Aligner les paragraphes avec la marge droite.

  • PFA_CENTER Centrer les paragraphes entre les marges.

Exemple

void CMyRichEditView::OnUpdateParaCenterUI(CCmdUI* pCmdUI)
{
   OnUpdateParaAlign(pCmdUI, PFA_CENTER);
}

CRichEditView ::P rintInsideRect

Appelez cette fonction pour mettre en forme une plage de texte dans un contrôle d’édition enrichi pour s’adapter à rectLayout pour l’appareil spécifié par pDC.

long PrintInsideRect(
    CDC* pDC,
    RECT& rectLayout,
    long nIndexStart,
    long nIndexStop,
    BOOL bOutput);

Paramètres

pDC
Pointeur vers un contexte d’appareil pour la zone de sortie.

rectLayout
RECT ou CRect qui définit la zone de sortie.

nIndexStart
Index de base zéro du premier caractère à mettre en forme.

nIndexStop
Index de base zéro du dernier caractère à mettre en forme.

bOutput
Indique si le texte doit être rendu. Si la valeur est FALSE, le texte est juste mesuré.

Valeur de retour

Index du dernier caractère qui correspond à la zone de sortie plus un.

Notes

En règle générale, cet appel est suivi d’un appel à CRichEditCtrl ::D isplayBand qui génère la sortie.

Exemple

Consultez l’exemple de CRichEditView ::GetPaperSize.

CRichEditView ::P rintPage

Appelez cette fonction pour mettre en forme une plage de texte dans un contrôle d’édition enrichi pour l’appareil de sortie spécifié par pDC.

long PrintPage(
    CDC* pDC,
    long nIndexStart,
    long nIndexStop);

Paramètres

pDC
Pointeur vers un contexte d’appareil pour la sortie de page.

nIndexStart
Index de base zéro du premier caractère à mettre en forme.

nIndexStop
Index de base zéro du dernier caractère à mettre en forme.

Valeur de retour

Index du dernier caractère qui s’adapte à la page plus un.

Notes

La mise en page de chaque page est contrôlée par GetPageRect et GetPrintRect. En règle générale, cet appel est suivi d’un appel à CRichEditCtrl ::D isplayBand qui génère la sortie.

Notez que les marges sont relatives à la page physique, et non à la page logique. Ainsi, les marges de zéro découpent souvent le texte, car de nombreuses imprimantes ont des zones imprimables sur la page. Pour éviter de couper votre texte, vous devez appeler SetMargins et définir des marges raisonnables avant l’impression.

CRichEditView ::QueryAcceptData

Appelé par l’infrastructure pour coller un objet dans la modification enrichie.

virtual HRESULT QueryAcceptData(
    LPDATAOBJECT lpdataobj,
    CLIPFORMAT* lpcfFormat,
    DWORD dwReco,
    BOOL bReally,
    HGLOBAL hMetaFile);

Paramètres

lpdataobj
Pointeur vers IDataObject à interroger.

lpcfFormat
Pointeur vers le format de données acceptable.

dwReco
Pas utilisé.

bReally
Indique si l’opération de collage doit continuer ou non.

hMetaFile
Handle vers le métafichier utilisé pour dessiner l’icône de l’élément.

Valeur de retour

Valeur HRESULT signalant la réussite de l’opération.

Notes

Remplacez cette fonction pour gérer différentes organisations d’éléments COM dans votre classe de document dérivée. Il s’agit d’un élément substituable avancé.

Pour plus d’informations sur HRESULT et IDataObject, consultez Structure des codes d’erreur COM et IDataObject, respectivement, dans le Kit de développement logiciel (SDK) Windows.

Exemple

// This code fragment is taken from the Wordpad sample.
HRESULT CMyRichEditView::QueryAcceptData(LPDATAOBJECT lpdataobj,
   CLIPFORMAT* lpcfFormat, DWORD dwReco, BOOL bReally, HGLOBAL hMetaFile)
{
   if (bReally && *lpcfFormat == 0 && (m_nPasteType == 0))
   {
      COleDataObject dataobj;
      dataobj.Attach(lpdataobj, FALSE);
      if (!dataobj.IsDataAvailable(cfRTO)) // native avail, let 
                                           // richedit do as it wants
      {
         if (dataobj.IsDataAvailable(cfEmbeddedObject))
         {
            if (PasteNative(lpdataobj)) // See WordPad sample for info
                                        // on PasteNative
               return S_FALSE;
         }
      }
   }
   return CRichEditView::QueryAcceptData(lpdataobj, lpcfFormat, dwReco,
      bReally, hMetaFile);
}

CRichEditView ::SetCharFormat

Appelez cette fonction pour définir les attributs de mise en forme des caractères pour le nouveau texte dans cet CRichEditView objet.

void SetCharFormat(CHARFORMAT2 cf);

Paramètres

Cf
CHARFORMAT2 structure contenant les nouveaux attributs de mise en forme de caractères par défaut.

Notes

Seuls les attributs spécifiés par le dwMask membre de cf sont modifiés par cette fonction.

Pour plus d’informations, consultez EM_SETCHARFORMAT structure de message et de CHARFORMAT2 dans le Kit de développement logiciel (SDK) Windows.

Exemple

void CMyRichEditView::OnCharUnderline()
{
   CHARFORMAT2 cf;
   cf = GetCharFormatSelection();

   if (!(cf.dwMask & CFM_UNDERLINE) || !(cf.dwEffects & CFE_UNDERLINE))
      cf.dwEffects = CFE_UNDERLINE;
   else
      cf.dwEffects = 0;

   cf.dwMask = CFM_UNDERLINE;
   SetCharFormat(cf);
}

CRichEditView ::SetMargins

Appelez cette fonction pour définir les marges d’impression de cet affichage d’édition enrichi.

void SetMargins(const CRect& rectMargin);

Paramètres

rectMargin
Nouvelles valeurs de marge pour l’impression, mesurées en MM_TWIPS.

Notes

Si m_nWordWrap est WrapToTargetDevice, vous devez appeler WrapChanged après avoir utilisé cette fonction pour ajuster les caractéristiques d’impression.

Notez que les marges utilisées par PrintPage sont relatives à la page physique, et non à la page logique. Ainsi, les marges de zéro découpent souvent le texte, car de nombreuses imprimantes ont des zones imprimables sur la page. Pour éviter de couper votre texte, vous devez appeler l’utilisation SetMargins pour définir des marges d’imprimante raisonnables avant l’impression.

Exemple

Consultez l’exemple de CRichEditView ::GetPaperSize.

CRichEditView ::SetPaperSize

Appelez cette fonction pour définir le format de papier pour l’impression de cet affichage d’édition enrichi.

void SetPaperSize(CSize sizePaper);

Paramètres

sizePaper
Nouvelles valeurs de taille de papier pour l’impression, mesurées en MM_TWIPS.

Notes

Si m_nWordWrap est WrapToTargetDevice, vous devez appeler WrapChanged après avoir utilisé cette fonction pour ajuster les caractéristiques d’impression.

Exemple

BOOL CMyRichEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
   // Set the printing margins (720 twips = 1/2 inch).
   SetMargins(CRect(720, 720, 720, 720));

   // Change the paper orientation to landscape mode
   // See the example for CWinApp::GetPrinterDeviceDefaults
   ((CMyWinApp*)AfxGetApp())->SetLandscapeMode();

   // Change the paper size in the CRichEditView to 
   // reflect landscape mode
   CSize csPaper = GetPaperSize();
   int temp;
   temp = csPaper.cx; csPaper.cx = csPaper.cy; csPaper.cy = temp;
   SetPaperSize(csPaper);

   return DoPreparePrinting(pInfo);
}

CRichEditView ::SetParaFormat

Appelez cette fonction pour définir les attributs de mise en forme des paragraphes pour la sélection actuelle dans cet CRichEditView objet.

BOOL SetParaFormat(PARAFORMAT2& pf);

Paramètres

pf
PARAFORMAT2 structure contenant les nouveaux attributs de mise en forme de paragraphe par défaut.

Valeur de retour

Différent de zéro s’il réussit ; sinon, 0.

Notes

Seuls les attributs spécifiés par le dwMask membre de pf sont modifiés par cette fonction.

Pour plus d’informations, consultez EM_SETPARAFORMAT structure de message et de PARAFORMAT2 dans le Kit de développement logiciel (SDK) Windows.

Exemple

void CMyRichEditView::AddBullets()
{
   PARAFORMAT2 pf;

   pf.cbSize = sizeof(PARAFORMAT2);
   pf.dwMask = PFM_NUMBERING | PFM_OFFSET;
   pf.wNumbering = PFN_BULLET;
   pf.dxOffset = 10;

   VERIFY(SetParaFormat(pf));
}

CRichEditView ::TextNotFound

Appelez cette fonction pour réinitialiser l’état de recherche interne du contrôle CRichEditView après un appel ayant échoué à FindText.

void TextNotFound(LPCTSTR lpszFind);

Paramètres

lpszFind
Contient la chaîne de texte introuvable.

Notes

Il est recommandé que cette méthode soit appelée immédiatement après l’échec des appels à FindText afin que l’état de recherche interne du contrôle soit correctement réinitialisé.

Le paramètre lpszFind doit inclure le même contenu que la chaîne fournie à FindText. Après avoir réinitialisé l’état de recherche interne, cette méthode appelle la méthode OnTextNotFound avec la chaîne de recherche fournie.

Exemple

Consultez l’exemple de CRichEditView ::FindText.

CRichEditView ::WrapChanged

Appelez cette fonction lorsque les caractéristiques d’impression ont changé ( SetMargins ou SetPaperSize).

virtual void WrapChanged();

Notes

Remplacez cette fonction pour modifier la façon dont la vue d’édition enrichie répond aux modifications apportées à m_nWordWrap ou aux caractéristiques d’impression ( OnPrinterChanged).

Exemple

void CMyRichEditView::OnInitialUpdate()
{
   CRichEditView::OnInitialUpdate();

   // Turn on the horizontal scroll bar
   m_nWordWrap = WrapNone;
   WrapChanged();
}

Voir aussi

Exemple WORDPAD MFC
CCtrlView, classe
Graphique hiérarchique
CRichEditDoc, classe
CRichEditCntrItem, classe