Compartir a través de


CRichEditView (clase)

Junto con CRichEditDoc y CRichEditCntrItem, proporciona la funcionalidad del control de edición enriquecida en el contexto de la arquitectura de vista-documento de MFC.

Sintaxis

class CRichEditView : public CCtrlView

Miembros

Constructores públicos

Nombre Descripción
CRichEditView::CRichEditView Construye un objeto CRichEditView.

Métodos públicos

Nombre Descripción
CRichEditView::AdjustDialogPosition Mueve un cuadro de diálogo para que no oscurezca la selección actual.
CRichEditView::CanPaste Indica si el Portapapeles contiene datos que se pueden pegar en la vista de edición enriquecida.
CRichEditView::DoPaste Pega un elemento OLE en esta vista de edición enriquecida.
CRichEditView::FindText Busca el texto especificado, invocando el cursor de espera.
CRichEditView::FindTextSimple Busca el texto especificado.
CRichEditView::GetCharFormatSelection Recupera los atributos de formato de caracteres para la selección actual.
CRichEditView::GetDocument Recupera un puntero al elemento CRichEditDoc relacionado.
CRichEditView::GetInPlaceActiveItem Recupera el elemento OLE que está activo en contexto actualmente en la vista de edición enriquecida.
CRichEditView::GetMargins Recupera los márgenes de esta vista de edición enriquecida.
CRichEditView::GetPageRect Recupera el rectángulo de página para esta vista de edición enriquecida.
CRichEditView::GetPaperSize Recupera el tamaño del papel para esta vista de edición enriquecida.
CRichEditView::GetParaFormatSelection Recupera los atributos de formato de párrafos para la selección actual.
CRichEditView::GetPrintRect Recupera el rectángulo de impresión para esta vista de edición enriquecida.
CRichEditView::GetPrintWidth Recupera el ancho de impresión para esta vista de edición enriquecida.
CRichEditView::GetRichEditCtrl Recupera el control de edición enriquecida.
CRichEditView::GetSelectedItem Recupera el elemento seleccionado de la vista de edición enriquecida.
CRichEditView::GetTextLength Recupera la longitud del texto en la vista de edición enriquecida.
CRichEditView::GetTextLengthEx Recupera el número de caracteres o bytes en la vista de edición enriquecida. Lista de marcas expandidas para el método de determinación de la longitud.
CRichEditView::InsertFileAsObject Inserta un archivo como un elemento OLE.
CRichEditView::InsertItem Inserta un nuevo elemento como un elemento OLE.
CRichEditView::IsRichEditFormat Indica si el Portapapeles contiene datos en formato de edición enriquecida o texto.
CRichEditView::OnCharEffect Alterna el formato de caracteres de la selección actual.
CRichEditView::OnParaAlign Cambia la alineación de los párrafos.
CRichEditView::OnUpdateCharEffect Actualiza las funciones miembro públicas de caracteres de la interfaz de usuario de comandos.
CRichEditView::OnUpdateParaAlign Actualiza las funciones miembro públicas de párrafos de la interfaz de usuario de comandos.
CRichEditView::PrintInsideRect Formatea el texto especificado dentro del rectángulo en cuestión.
CRichEditView::PrintPage Formatea el texto especificado dentro de la página en cuestión.
CRichEditView::SetCharFormat Establece los atributos de formato de caracteres para la selección actual.
CRichEditView::SetMargins Establece los márgenes de esta vista de edición enriquecida.
CRichEditView::SetPaperSize Establece el tamaño del papel para esta vista de edición enriquecida.
CRichEditView::SetParaFormat Establece los atributos de formato de párrafos para la selección actual.
CRichEditView::TextNotFound Restablece el estado de búsqueda interno del control.

Métodos protegidos

Nombre Descripción
CRichEditView::GetClipboardData Recupera un objeto de Portapapeles para un intervalo de esta vista de edición enriquecida.
CRichEditView::GetContextMenu Recupera un menú contextual que se va a utilizar al presionar el botón derecho del mouse.
CRichEditView::IsSelected Indica si el elemento OLE en cuestión está seleccionado o no.
CRichEditView::OnFindNext Busca la siguiente aparición de una subcadena.
CRichEditView::OnInitialUpdate Actualiza una vista cuando se adjunta por primera vez a un documento.
CRichEditView::OnPasteNativeObject Recupera datos nativos de un elemento OLE.
CRichEditView::OnPrinterChanged Establece las características de impresión para el dispositivo en cuestión.
CRichEditView::OnReplaceAll Reemplaza todas las apariciones de una cadena determinada por una nueva cadena.
CRichEditView::OnReplaceSel Reemplaza la selección actual.
CRichEditView::OnTextNotFound Controla la notificación al usuario de que no se encontró el texto solicitado.
CRichEditView::QueryAcceptData Consulta para ver los datos de IDataObject.
CRichEditView::WrapChanged Ajusta el dispositivo de salida de destino para esta vista de edición enriquecida, basándose en el valor de m_nWordWrap.

Miembros de datos públicos

Nombre Descripción
CRichEditView::m_nBulletIndent Indica la cantidad de sangría para las listas de viñetas.
CRichEditView::m_nWordWrap Indica las restricciones de ajuste de palabras.

Comentarios

Un "control de edición enriquecida" es una ventana en la que el usuario puede escribir y editar texto. Al texto se le puede asignar un formato de caracteres y párrafos, y puede incluir objetos OLE insertados. Los controles de edición enriquecida proporcionan una interfaz de programación para dar formato al texto. Pero una aplicación debe implementar los componentes de la interfaz de usuario necesarios a fin de que las operaciones de formato estén disponibles para el usuario.

CRichEditView mantiene el texto y la característica de formato del texto. CRichEditDoc mantiene la lista de elementos de cliente OLE que se encuentran en la vista. CRichEditCntrItem proporciona acceso del lado contenedor al elemento de cliente OLE.

Este control común de Windows (y, por tanto, la clase CRichEditCtrl y relacionadas) solo está disponible para los programas que se ejecutan en Windows 95/98 y Windows NT 3.51, así como en versiones posteriores.

Para un ejemplo de uso de un control de edición enriquecida en una aplicación MFC, vea la aplicación de ejemplo WORDPAD.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CView

CCtrlView

CRichEditView

Requisitos

Encabezado: afxrich.h

CRichEditView::AdjustDialogPosition

Llame a esta función para mover el cuadro de diálogo especificado para que no oculte la selección actual.

void AdjustDialogPosition(CDialog* pDlg);

Parámetros

pDlg
Un puntero a un objeto CDialog.

CRichEditView::CanPaste

Llame a esta función para determinar si el Portapapeles contiene información que se puede pegar en esta vista de edición enriquecida.

BOOL CanPaste() const;

Valor devuelto

Distinto de cero si el Portapapeles contiene datos en un formato que esta vista de edición enriquecida puede aceptar; de lo contrario, 0.

CRichEditView::CRichEditView

Llame a esta función para crear un objeto CRichEditView.

CRichEditView();

CRichEditView::DoPaste

Llame a esta función para pegar el elemento OLE en dataobj en este documento o vista de edición enriquecida.

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

Parámetros

dataobj
COleDataObject que contiene los datos que se van a pegar.

cf
El formato deseado del Portapapeles.

hMetaPict
Metarchivo que representa el elemento que se va a pegar.

Comentarios

El marco llama a esta función como parte de la implementación predeterminada de QueryAcceptData.

Esta función determina el tipo de pegado en función de los resultados del controlador para Pegado especial. Si cf es 0, el nuevo elemento utiliza la representación de iconos actual. Si cf es distinto de cero y hMetaPict no es NULL, el nuevo elemento usa hMetaPict para su representación.

CRichEditView::FindText

Llame a esta función para buscar el texto especificado y establecerlo como la selección actual.

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

Parámetros

lpszFind
Contiene la cadena que se va a buscar.

bCase
Indica si la búsqueda distingue entre mayúsculas y minúsculas.

bWord
Indica si para la búsqueda deben coincidir solo palabras completas y no partes de ellas.

bNext
Indica la dirección de la búsqueda. Si es TRUE, la dirección de búsqueda está hacia el final del búfer. Si es FALSE, la dirección de búsqueda es hacia el principio del búfer.

Valor devuelto

Distinto de cero si se encuentra el texto de lpszFind; de lo contrario, 0.

Comentarios

Esta función muestra el cursor de espera durante la operación de búsqueda.

Ejemplo

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

Llame a esta función para buscar el texto especificado y establecerlo como la selección actual.

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

Parámetros

lpszFind
Contiene la cadena que se va a buscar.

bCase
Indica si la búsqueda distingue entre mayúsculas y minúsculas.

bWord
Indica si para la búsqueda deben coincidir solo palabras completas y no partes de ellas.

bNext
Indica la dirección de la búsqueda. Si es TRUE, la dirección de búsqueda está hacia el final del búfer. Si es FALSE, la dirección de búsqueda es hacia el principio del búfer.

Valor devuelto

Distinto de cero si se encuentra el texto de lpszFind; de lo contrario, 0.

Ejemplo

Vea el ejemplo de CRichEditView::FindText.

CRichEditView::GetCharFormatSelection

Llame a esta función para obtener los atributos de formato de caracteres de la selección actual.

CHARFORMAT2& GetCharFormatSelection();

Valor devuelto

Estructura CHARFORMAT2 que contiene los atributos de formato de caracteres de la selección actual.

Comentarios

Para más información, vea el mensaje EM_GETCHARFORMAT y la estructura CHARFORMAT2 en Windows SDK.

Ejemplo

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

El marco llama a esta función como parte del procesamiento de IRichEditOleCallback::GetClipboardData.

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

Parámetros

lpchrg
Puntero a la estructura CHARRANGE que especifica el intervalo de caracteres (y elementos OLE) que se van a copiar en el objeto de datos especificado por lplpdataobj.

dwReco
Marca de operación del Portapapeles. Puede ser uno de estos valores.

  • RECO_COPY Copiar en el Portapapeles.

  • RECO_CUT Cortar y colocar en el Portapapeles.

  • RECO_DRAG Operación de arrastrar (arrastrar y colocar).

  • RECO_DROP Operación de colocar (arrastrar y colocar).

  • RECO_PASTE Pegar desde el Portapapeles.

lpRichDataObj
Puntero a un objeto IDataObject que contiene los datos del Portapapeles del control de edición enriquecida (IRichEditOle::GetClipboardData).

lplpdataobj
Puntero a la variable de puntero que recibe la dirección del objeto IDataObject que representa el intervalo especificado en el parámetro lpchrg. El valor de lplpdataobj se omite si se devuelve un error.

Valor devuelto

Valor HRESULT que informa del éxito de la operación. Para más información sobre HRESULT, consulte Estructura de códigos de error de COM en Windows SDK.

Comentarios

Si el valor devuelto indica que se ha realizado correctamente, IRichEditOleCallback::GetClipboardData devuelve el elemento IDataObject al que accede lplpdataobj; de lo contrario, devuelve el que accede lpRichDataObj. Invalide esta función para proporcionar sus propios datos del Portapapeles. La implementación predeterminada de esta función devuelve E_NOTIMPL.

Se trata de una invalidación avanzada.

Para más información, vea IRichEditOle::GetClipboardData, IRichEditOleCallback::GetClipboardData y CHARRANGE en Windows SDK y vea IDataObject en Windows SDK.

CRichEditView::GetContextMenu

El marco llama a esta función como parte del procesamiento de IRichEditOleCallback::GetContextMenu.

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

Parámetros

seltyp
Tipo de selección. Los valores de tipo de selección se describen en la sección Comentarios.

lpoleobj
Puntero a una estructura OLEOBJECT que especifica el primer objeto OLE seleccionado si la selección contiene uno o varios elementos OLE. Si la selección no contiene ningún elemento, lpoleobj es NULL. La estructura OLEOBJECT contiene un puntero a una tabla virtual de objeto OLE.

lpchrg
Puntero a una estructura CHARRANGE que contiene la selección actual.

Valor devuelto

Identificador del menú contextual.

Comentarios

Esta función es una parte típica del procesamiento del botón desplegable secundario del mouse.

El tipo de selección puede ser cualquier combinación de las marcas siguientes:

  • SEL_EMPTY indica que no hay ninguna selección actual.

  • SEL_TEXT indica que la selección actual contiene texto.

  • SEL_OBJECT indica que la selección actual contiene al menos un elemento OLE.

  • SEL_MULTICHAR indica que la selección actual contiene más de un carácter de texto.

  • SEL_MULTIOBJECT indica que la selección actual contiene más de un objeto OLE.

La implementación predeterminada devuelve NULL. Se trata de una invalidación avanzada.

Para más información, vea IRichEditOleCallback::GetContextMenu y CHARRANGE en Windows SDK.

CRichEditView::GetDocument

Llame a esta función para obtener un puntero al elemento CRichEditDoc asociado a esta vista.

CRichEditDoc* GetDocument() const;

Valor devuelto

Puntero a un objeto CRichEditDoc asociado al objeto CRichEditView.

CRichEditView::GetInPlaceActiveItem

Llame a esta función para obtener el elemento OLE que está activado actualmente en lugar en este objeto CRichEditView.

CRichEditCntrItem* GetInPlaceActiveItem() const;

Valor devuelto

Puntero al único objeto CRichEditCntrItem activo localmente en esta vista de edición enriquecida; NULL si no hay ningún elemento OLE actualmente en el estado activo en contexto.

CRichEditView::GetMargins

Llame a esta función para recuperar los márgenes actuales usados en la impresión.

CRect GetMargins() const;

Valor devuelto

Los márgenes utilizados en la impresión, medidos en MM_TWIPS.

CRichEditView::GetPageRect

Llame a esta función para obtener las dimensiones de la página usada en la impresión.

CRect GetPageRect() const;

Valor devuelto

Límites de la página usada en la impresión, medidos en MM_TWIPS.

Comentarios

Este valor se basa en el tamaño del papel.

CRichEditView::GetPaperSize

Llame a esta función para recuperar el tamaño de papel actual.

CSize GetPaperSize() const;

Valor devuelto

Tamaño del papel utilizado en la impresión, medido en MM_TWIPS.

Ejemplo

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

Llame a esta función para obtener los atributos de formato de párrafos de la selección actual.

PARAFORMAT2& GetParaFormatSelection();

Valor devuelto

Estructura PARAFORMAT2 que contiene los atributos de formato de párrafos de la selección actual.

Comentarios

Para más información, vea el mensaje EM_GETPARAFORMAT y la estructura PARAFORMAT2 en Windows SDK.

CRichEditView::GetPrintRect

Llame a esta función para recuperar los límites del área de impresión dentro del rectángulo de página.

CRect GetPrintRect() const;

Valor devuelto

Límites del área de imagen usados en la impresión, medidos en MM_TWIPS.

Ejemplo

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

Llame a esta función para determinar el ancho del área de impresión.

int GetPrintWidth() const;

Valor devuelto

Ancho del área de impresión, medido en MM_TWIPS.

CRichEditView::GetRichEditCtrl

Llame a esta función para recuperar el objeto CRichEditCtrl asociado al objeto CRichEditView.

CRichEditCtrl& GetRichEditCtrl() const;

Valor devuelto

Objeto CRichEditCtrl de esta vista.

Ejemplo

Vea el ejemplo de CRichEditView::FindText.

CRichEditView::GetSelectedItem

Llame a esta función para recuperar el elemento OLE (un objeto CRichEditCntrItem) seleccionado actualmente en este objeto CRichEditView.

CRichEditCntrItem* GetSelectedItem() const;

Valor devuelto

Puntero a un objeto CRichEditCntrItem seleccionado en el objeto CRichEditView; NULL si no se selecciona ningún elemento en esta vista.

CRichEditView::GetTextLength

Llame a esta función para recuperar la longitud del texto de este objeto CRichEditView.

long GetTextLength() const;

Valor devuelto

Longitud del texto de este objeto CRichEditView.

CRichEditView::GetTextLengthEx

Llame a esta función miembro para calcular la longitud del texto de este objeto CRichEditView.

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

Parámetros

dwFlags
Valor que especifica el método que se va a usar para determinar la longitud del texto. Este miembro puede ser uno o varios de los valores enumerados en el miembro de marcas de GETTEXTLENGTHEX que se describe en Windows SDK.

uCodePage
Página de códigos para la traducción (CP_ACP para la página de códigos ANSI, 1200 para Unicode).

Valor devuelto

Número de caracteres o bytes en el control de edición. Si se establecieron marcas incompatibles en dwFlags, esta función miembro devuelve E_INVALIDARG.

Comentarios

GetTextLengthEx proporciona formas adicionales de determinar la longitud del texto. Admite la funcionalidad Rich Edit 2.0. Para más información, consulte Acerca de los controles de edición enriquecida en el Windows SDK.

CRichEditView::InsertFileAsObject

Llame a esta función para insertar el archivo especificado (como un objeto CRichEditCntrItem) en una vista de edición enriquecida.

void InsertFileAsObject(LPCTSTR lpszFileName);

Parámetros

lpszFileName
Cadena que contiene el nombre del archivo que se va a insertar.

CRichEditView::InsertItem

Llame a esta función para insertar un objeto CRichEditCntrItem en una vista de edición enriquecida.

HRESULT InsertItem(CRichEditCntrItem* pItem);

Parámetros

pItem
Puntero al elemento que se va a insertar.

Valor devuelto

Valor HRESULT que indica el éxito de la inserción.

Comentarios

Para más información sobre HRESULT, consulte Estructura de códigos de error de COM en Windows SDK.

CRichEditView::IsRichEditFormat

Llame a esta función para determinar si cf es un formato de Portapapeles que es texto, texto enriquecido o texto enriquecido con elementos OLE.

static BOOL AFX_CDECL IsRichEditFormat(CLIPFORMAT cf);

Parámetros

cf
Formato de interés del Portapapeles.

Valor devuelto

Distinto de cero si cf es un formato del Portapapeles de edición enriquecida o de texto.

CRichEditView::IsSelected

Llame a esta función para determinar si el elemento OLE especificado está seleccionado actualmente en esta vista.

virtual BOOL IsSelected(const CObject* pDocItem) const;

Parámetros

pDocItem
Puntero a un objeto de la vista.

Valor devuelto

Distinto de cero si el objeto está seleccionado; de lo contrario, 0.

Comentarios

Invalide esta función si la clase de vista derivada tiene un método diferente para controlar la selección de elementos OLE.

CRichEditView::m_nBulletIndent

Sangría para los elementos de viñeta de una lista; de forma predeterminada, 720 unidades, que son de 1/2 pulgadas.

int m_nBulletIndent;

CRichEditView::m_nWordWrap

Indica el tipo de ajuste de palabras para esta vista de edición enriquecida.

int m_nWordWrap;

Comentarios

Uno de los siguientes valores:

  • WrapNone Indica que no hay ajuste automático de palabras.

  • WrapToWindow Indica el ajuste de palabras en función del ancho de la ventana.

  • WrapToTargetDevice Indica el ajuste de palabras en función de las características del dispositivo de destino.

Ejemplo

Vea el ejemplo de CRichEditView::WrapChanged.

CRichEditView::OnCharEffect

Llame a esta función para alternar los efectos del formato de caracteres de la selección actual.

void OnCharEffect(
    DWORD dwMask,
    DWORD dwEffect);

Parámetros

dwMask
Efectos de formato de caracteres que se van a modificar en la selección actual.

dwEffect
Lista de los efectos de formato de caracteres deseados que se van a alternar.

Comentarios

Cada llamada a esta función alterna los efectos de formato especificados para la selección actual.

Para más información sobre los parámetros dwMask y dwEffect y sus valores potenciales, consulte los miembros de datos correspondientes de CHARFORMAT en Windows SDK.

Ejemplo

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

CRichEditView::OnFindNext

Lo llama el marco al procesar comandos desde el cuadro de diálogo Buscar o reemplazar.

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

Parámetros

lpszFind
La cadena que se va a buscar.

bNext
La dirección de búsqueda: TRUE indica hacia abajo; FALSE, hacia arriba.

bCase
Indica si la búsqueda distingue mayúsculas de minúsculas.

bWord
Indica si para la búsqueda deben coincidir palabras completas o no.

Comentarios

Llame a esta función para buscar texto dentro de CRichEditView. Invalide esta función para modificar las características de búsqueda de la clase de vista derivada.

CRichEditView::OnInitialUpdate

Lo llama el marco después de adjuntar la vista al documento por primera vez, pero antes de que se muestre inicialmente la vista.

virtual void OnInitialUpdate();

Comentarios

La implementación predeterminada de esta función llama a la función miembro CView::OnUpdate sin información de sugerencias (es decir, usando los valores predeterminados de 0 para el parámetro lHint y NULL para el parámetro pHint). Invalide esta función para realizar cualquier inicialización única que requiera información sobre el documento. Por ejemplo, si la aplicación tiene documentos de tamaño fijo, puede usar esta función para inicializar los límites de desplazamiento de una vista en función del tamaño del documento. Si la aplicación admite documentos de tamaño variable, use OnUpdate para actualizar los límites de desplazamiento cada vez que cambie el documento.

Ejemplo

Vea el ejemplo de CRichEditView::m_nWordWrap.

CRichEditView::OnPasteNativeObject

Use esta función para cargar datos nativos desde un elemento insertado.

virtual BOOL OnPasteNativeObject(LPSTORAGE lpStg);

Parámetros

lpStg
Puntero a un objeto IStorage.

Valor devuelto

Distinto de cero si se realiza correctamente; de lo contrario, 0.

Comentarios

Normalmente, lo haría creando un elemento COleStreamFile en IStorage. COleStreamFile se puede adjuntar a un archivo y llamar a CObject::Serialize para cargar los datos.

Se trata de una invalidación avanzada.

Para más información, consulte IStorage e en Windows SDK.

CRichEditView::OnParaAlign

Llame a esta función para cambiar la alineación de párrafo de los párrafos seleccionados.

void OnParaAlign(WORD wAlign);

Parámetros

wAlign
Alineación de párrafo deseada. Uno de los siguientes valores:

  • PFA_LEFT Alinear los párrafos con el margen izquierdo.

  • PFA_RIGHT Alinear los párrafos con el margen derecho.

  • PFA_CENTER Centrar los párrafos entre los márgenes.

Ejemplo

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

CRichEditView::OnPrinterChanged

Invalide esta función para cambiar las características de esta vista de edición enriquecida cuando cambia la impresora.

virtual void OnPrinterChanged(const CDC& dcPrinter);

Parámetros

dcPrinter
Objeto CDC para la nueva impresora.

Comentarios

La implementación predeterminada establece el tamaño del papel en el alto y el ancho físico del dispositivo de salida (impresora). Si no hay ningún contexto de dispositivo asociado a dcPrinter, la implementación predeterminada establece el tamaño de papel en 8,5 por 11 pulgadas (21,59 x 27,94 cm).

CRichEditView::OnReplaceAll

Lo llama el marco al procesar comandos Reemplazar todo desde el cuadro de diálogo Reemplazar.

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

Parámetros

lpszFind
Texto que se va a reemplazar.

lpszReplace
El texto de sustitución.

bCase
Indica si la búsqueda distingue entre mayúsculas y minúsculas.

bWord
Indica si la búsqueda debe seleccionar palabras completas o no.

Comentarios

Llame a esta función para reemplazar todas las apariciones de un texto determinado por otra cadena. Invalide esta función para modificar las características de búsqueda para esta vista.

Ejemplo

Vea el ejemplo de CRichEditView::FindText.

CRichEditView::OnReplaceSel

Lo llama el marco al procesar comandos Reemplazar desde el cuadro de diálogo Reemplazar.

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

Parámetros

lpszFind
Texto que se va a reemplazar.

bNext
Indica la dirección de la búsqueda: TRUE indica hacia abajo; FALSE, hacia arriba.

bCase
Indica si la búsqueda distingue entre mayúsculas y minúsculas.

bWord
Indica si la búsqueda debe seleccionar palabras completas o no.

lpszReplace
El texto de sustitución.

Comentarios

Llame a esta función para reemplazar una aparición de un texto determinado por otra cadena. Invalide esta función para modificar las características de búsqueda para esta vista.

CRichEditView::OnTextNotFound

Lo llama el marco cada vez que se produce un error en una búsqueda.

virtual void OnTextNotFound(LPCTSTR lpszFind);

Parámetros

lpszFind
Texto que no se ha encontrado.

Comentarios

Invalide esta función para cambiar la notificación de salida de un elemento MessageBeep.

Para más información, vea MessageBeep en Windows SDK.

Ejemplo

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

El marco llama a esta función para actualizar la interfaz de usuario de comandos para los comandos de efectos de caracteres.

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

Parámetros

pCmdUI
Puntero a un objeto CCmdUI.

dwMask
Indica la máscara de formato de caracteres.

dwEffect
Indica el efecto del formato de caracteres.

Comentarios

La máscara dwMask especifica qué atributos de formato de caracteres se van a activar. Las marcas dwEffect enumeran los atributos de formato de caracteres que se van a establecer o borrar.

Para más información sobre los parámetros dwMask y dwEffect y sus valores potenciales, consulte los miembros de datos correspondientes de CHARFORMAT en Windows SDK.

Ejemplo

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

CRichEditView::OnUpdateParaAlign

El marco llama a esta función para actualizar la interfaz de usuario de comandos para los comandos de efectos de párrafos.

void OnUpdateParaAlign(
    CCmdUI* pCmdUI,
    WORD wAlign);

Parámetros

pCmdUI
Puntero a un objeto CCmdUI.

wAlign
Alineación del párrafo que se va a activar. Uno de los siguientes valores:

  • PFA_LEFT Alinear los párrafos con el margen izquierdo.

  • PFA_RIGHT Alinear los párrafos con el margen derecho.

  • PFA_CENTER Centrar los párrafos entre los márgenes.

Ejemplo

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

CRichEditView::PrintInsideRect

Llame a esta función para dar formato a un intervalo de texto en un control de edición enriquecida que se ajuste en rectLayout para el dispositivo especificado por pDC.

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

Parámetros

pDC
[in] Puntero a un contexto de dispositivo para el área de salida.

rectLayout
RECT o CRect, que definen el área de salida.

nIndexStart
Índice de base cero del primer carácter que se va a formatear.

nIndexStop
Índice de base cero del último carácter que se va a formatear.

bOutput
Indica si el texto se debe representar. Si es FALSE, el texto simplemente se mide.

Valor devuelto

Índice del último carácter que cabe en el área de salida más uno.

Comentarios

Normalmente, esta llamada va seguida de una llamada a CRichEditCtrl::DisplayBand que genera la salida.

Ejemplo

Vea el ejemplo de CRichEditView::GetPaperSize.

CRichEditView::PrintPage

Llame a esta función para formatear a un intervalo de texto en un control de edición enriquecida para el dispositivo de salida especificado por pDC.

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

Parámetros

pDC
Puntero a un contexto de dispositivo para la salida de página.

nIndexStart
Índice de base cero del primer carácter que se va a formatear.

nIndexStop
Índice de base cero del último carácter que se va a formatear.

Valor devuelto

Índice del último carácter que cabe en el área más uno.

Comentarios

El diseño de cada página se controla mediante GetPageRect y GetPrintRect. Normalmente, esta llamada va seguida de una llamada a CRichEditCtrl::DisplayBand que genera la salida.

Tenga en cuenta que los márgenes son relativos a la página física, no a la página lógica. Por lo tanto, los márgenes cero suelen recortar el texto, ya que muchas impresoras tienen áreas no imprimibles en la página. Para evitar que el texto se recorte, debe llamar a SetMargins y establecer márgenes razonables antes de imprimir.

CRichEditView::QueryAcceptData

Lo llama el marco para pegar un objeto en la edición enriquecida.

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

Parámetros

lpdataobj
Puntero al objeto IDataObject que se va a consultar.

lpcfFormat
Puntero al formato de datos aceptable.

dwReco
No utilizado.

bReally
Indica si la operación de pegado debe continuar o no.

hMetaFile
Manipulador del metarchivo que se usa para dibujar el icono del elemento.

Valor devuelto

Valor HRESULT que informa del éxito de la operación.

Comentarios

Invalide esta función para controlar diferentes elementos de organización de COM en la clase de documento derivada. Se trata de una invalidación avanzada.

Para más información sobre HRESULT y IDataObject, vea Estructura de códigos de error COM e IDataObject, respectivamente, en Windows SDK.

Ejemplo

// 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

Llame a esta función para establecer los atributos de formato de caracteres para el nuevo texto de este objeto CRichEditView.

void SetCharFormat(CHARFORMAT2 cf);

Parámetros

cf
Estructura CHARFORMAT2 que contiene los nuevos atributos de formato de caracteres predeterminados.

Comentarios

Esta función cambia solo los atributos especificados por el miembro dwMask de cf.

Para más información, vea el mensaje EM_SETCHARFORMAT y la estructura CHARFORMAT2 en Windows SDK.

Ejemplo

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

Llame a esta función para establecer los márgenes de impresión de esta vista de edición enriquecida.

void SetMargins(const CRect& rectMargin);

Parámetros

rectMargin
Los nuevos valores de margen para imprimir, medidos en MM_TWIPS.

Comentarios

Si m_nWordWrap es WrapToTargetDevice, debe llamar a WrapChanged después de usar esta función para ajustar las características de impresión.

Tenga en cuenta que los márgenes usados por PrintPage son relativos a la página física, no a la página lógica. Por lo tanto, los márgenes cero suelen recortar el texto, ya que muchas impresoras tienen áreas no imprimibles en la página. Para evitar que el texto se recorte, debe usar SetMargins para establecer márgenes de impresora razonables antes de imprimir.

Ejemplo

Vea el ejemplo de CRichEditView::GetPaperSize.

CRichEditView::SetPaperSize

Llame a esta función para establecer el tamaño del papel para imprimir esta vista de edición enriquecida.

void SetPaperSize(CSize sizePaper);

Parámetros

sizePaper
Los nuevos valores de tamaño de papel para imprimir, medidos en MM_TWIPS.

Comentarios

Si m_nWordWrap es WrapToTargetDevice, debe llamar a WrapChanged después de usar esta función para ajustar las características de impresión.

Ejemplo

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

Llame a esta función para establecer los atributos de formato de párrafo para la selección actual de este objeto CRichEditView.

BOOL SetParaFormat(PARAFORMAT2& pf);

Parámetros

pf
Estructura PARAFORMAT2 que contiene los nuevos atributos de formato de párrafos predeterminados.

Valor devuelto

Distinto de cero si se realiza correctamente; en caso contrario, 0.

Comentarios

Esta función cambia solo los atributos especificados por el miembro dwMask de pf.

Para más información, vea el mensaje EM_SETPARAFORMAT y la estructura PARAFORMAT2 en Windows SDK.

Ejemplo

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

Llame a esta función para restablecer el estado de búsqueda interno del control CRichEditView después de una llamada errónea a FindText.

void TextNotFound(LPCTSTR lpszFind);

Parámetros

lpszFind
Contiene la cadena de texto que no se encontró.

Comentarios

Se recomienda llamar a este método inmediatamente después de llamadas con error a FindText para que el estado de búsqueda interno del control se restablezca correctamente.

El parámetro lpszFind debe incluir el mismo contenido que la cadena proporcionada a FindText. Después de restablecer el estado de búsqueda interno, este método llamará al método OnTextNotFound con la cadena de búsqueda proporcionada.

Ejemplo

Vea el ejemplo de CRichEditView::FindText.

CRichEditView::WrapChanged

Llame a esta función cuando las características de impresión hayan cambiado (SetMargins o SetPaperSize).

virtual void WrapChanged();

Comentarios

Invalide esta función para modificar la forma en que la vista de edición enriquecida responde a los cambios en m_nWordWrap o las características de impresión (OnPrinterChanged).

Ejemplo

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

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

Vea también

WORDPAD de ejemplo de MFC
CCtrlView (clase)
Gráfico de jerarquías
CRichEditDoc (clase)
CRichEditCntrItem (clase)