Compartir a través de


Clase CRichEditCtrl

Proporciona la funcionalidad del control Rich Edit.

Sintaxis

class CRichEditCtrl : public CWnd

Miembros

Constructores públicos

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

Métodos públicos

Nombre Descripción
CRichEditCtrl::CanPaste Determina si el contenido del Portapapeles se puede pegar en este control de edición enriquecido.
CRichEditCtrl::CanRedo Determina si hay acciones en la cola de rehacer del control.
CRichEditCtrl::CanUndo Determina si se puede deshacer una operación de edición.
CRichEditCtrl::CharFromPos Recupera información sobre el carácter más cercano a un punto especificado en el área cliente de un control de edición.
CRichEditCtrl::Clear Borra la selección actual.
CRichEditCtrl::Copy Copia la selección actual en el Portapapeles.
CRichEditCtrl::Create Crea el control de edición enriquecida de Windows y lo asocia a este objeto CRichEditCtrl.
CRichEditCtrl::CreateEx Crea el control de edición enriquecida de Windows con los estilos extendidos de Windows especificados y lo asocia a este objeto CRichEditCtrl.
CRichEditCtrl::Cut Corta la selección actual en el Portapapeles.
CRichEditCtrl::DisplayBand Muestra una parte del contenido de este objeto CRichEditCtrl.
CRichEditCtrl::EmptyUndoBuffer Restablece (borra) la marca de deshacer de este objeto CRichEditCtrl.
CRichEditCtrl::FindText Busca texto dentro de este objeto CRichEditCtrl.
CRichEditCtrl::FindWordBreak Busca el siguiente salto de palabra antes o después de la posición de carácter especificada, o recupera información sobre el carácter en esa posición.
CRichEditCtrl::FormatRange Da formato a un intervalo de texto para el dispositivo de salida de destino.
CRichEditCtrl::GetCharPos Determina la ubicación de un carácter determinado dentro de este objeto CRichEditCtrl.
CRichEditCtrl::GetDefaultCharFormat Recupera los atributos de formato de caracteres predeterminados actuales en este objeto CRichEditCtrl.
CRichEditCtrl::GetEventMask Recupera la máscara de eventos de este objeto CRichEditCtrl.
CRichEditCtrl::GetFirstVisibleLine Determina la línea visible situada más arriba en este objeto CRichEditCtrl.
CRichEditCtrl::GetIRichEditOle Recupera un puntero a la interfaz IRichEditOle para este control de edición enriquecido.
CRichEditCtrl::GetLimitText Obtiene el límite de la cantidad de texto que un usuario puede escribir en este objeto CRichEditCtrl.
CRichEditCtrl::GetLine Recupera una línea de texto de este objeto CRichEditCtrl.
CRichEditCtrl::GetLineCount Recupera el número de líneas de este objeto CRichEditCtrl.
CRichEditCtrl::GetModify Determina si el contenido de este objeto CRichEditCtrl ha cambiado desde el último guardado.
CRichEditCtrl::GetOptions Recupera las opciones de control de edición enriquecidas.
CRichEditCtrl::GetParaFormat Recupera los atributos de formato de párrafo en la selección actual de este objeto CRichEditCtrl.
CRichEditCtrl::GetPunctuation Recupera los caracteres de puntuación actuales para el control de edición enriquecido. Este mensaje solo está disponible en versiones de idioma asiático del sistema operativo.
CRichEditCtrl::GetRect Recupera el rectángulo de formato de este objeto CRichEditCtrl.
CRichEditCtrl::GetRedoName Recupera el tipo de la siguiente acción, si existe, en la cola de rehacer del control.
CRichEditCtrl::GetSel Obtiene las posiciones inicial y final de la selección actual en este objeto CRichEditCtrl.
CRichEditCtrl::GetSelectionCharFormat Recupera los atributos de formato de párrafo en la selección actual de este objeto CRichEditCtrl.
CRichEditCtrl::GetSelectionType Recupera el tipo de contenido de la selección actual de este objeto CRichEditCtrl.
CRichEditCtrl::GetSelText Obtiene el texto de la selección actual en este objeto CRichEditCtrl.
CRichEditCtrl::GetTextLength Recupera la longitud del texto, en caracteres, en este objeto CRichEditCtrl. En la búsqueda no se incluye el carácter nulo de finalización.
CRichEditCtrl::GetTextLengthEx Recupera el número de caracteres o bytes en la vista de edición enriquecida. Acepta una lista de marcas para indicar el método para determinar la longitud del texto en un control de edición enriquecido.
CRichEditCtrl::GetTextMode Recupera el modo de texto actual y el nivel de deshacer de un control de edición enriquecido.
CRichEditCtrl::GetTextRange Recupera el intervalo de texto especificado.
CRichEditCtrl::GetUndoName Recupera el tipo de la siguiente acción de deshacer, si existe.
CRichEditCtrl::GetWordWrapMode Recupera las opciones actuales de ajuste de palabras y separación de palabras para el control de edición enriquecido. Este mensaje solo está disponible en versiones de idioma asiático del sistema operativo.
CRichEditCtrl::HideSelection Muestra u oculta la selección actual.
CRichEditCtrl::LimitText Limita la cantidad de texto que un usuario puede escribir en el objeto CRichEditCtrl.
CRichEditCtrl::LineFromChar Determina qué línea contiene el carácter especificado.
CRichEditCtrl::LineIndex Recupera el índice de caracteres de una línea determinada en este objeto CRichEditCtrl.
CRichEditCtrl::LineLength Recupera la longitud de una línea determinada en este objeto CRichEditCtrl.
CRichEditCtrl::LineScroll Desplaza el texto de este objeto CRichEditCtrl.
CRichEditCtrl::Paste Inserta el contenido del Portapapeles en el control de edición enriquecido.
CRichEditCtrl::PasteSpecial Inserta el contenido del Portapapeles en este control de edición enriquecido en el formato de datos especificado.
CRichEditCtrl::PosFromChar Recupera las coordenadas del área de cliente de un carácter especificado en un control de edición.
CRichEditCtrl::Redo Rehace la siguiente acción en la cola de rehacer del control.
CRichEditCtrl::ReplaceSel Reemplaza la selección actual de este objeto CRichEditCtrl por el texto especificado.
CRichEditCtrl::RequestResize Obliga a este objeto CRichEditCtrl a enviar notificaciones de cambio de tamaño de solicitud.
CRichEditCtrl::SetAutoURLDetect Indica si la detección automática de direcciones URL está activa en un control de edición enriquecido.
CRichEditCtrl::SetBackgroundColor Establece el color de fondo de este objeto CRichEditCtrl.
CRichEditCtrl::SetDefaultCharFormat Recupera los atributos de formato de caracteres predeterminados actuales en este objeto CRichEditCtrl.
CRichEditCtrl::SetEventMask Recupera la máscara de eventos de este objeto CRichEditCtrl.
CRichEditCtrl::SetModify Establece o borra la marca de modificación para este objeto CRichEditCtrl.
CRichEditCtrl::SetOLECallback Establece el objeto COM IRichEditOleCallback para este control de edición enriquecido.
CRichEditCtrl::SetOptions Establece las opciones de este objeto CRichEditCtrl.
CRichEditCtrl::SetParaFormat Recupera los atributos de formato de párrafo en la selección actual de este objeto CRichEditCtrl.
CRichEditCtrl::SetPunctuation Establece los caracteres de puntuación de un control de edición enriquecido. Este mensaje solo está disponible en versiones de idioma asiático del sistema operativo.
CRichEditCtrl::SetReadOnly Establece la opción de solo lectura para este objeto CRichEditCtrl.
CRichEditCtrl::SetRect Establece el rectángulo de formato de este objeto CRichEditCtrl.
CRichEditCtrl::SetSel Establece la selección en este objeto CRichEditCtrl.
CRichEditCtrl::SetSelectionCharFormat Establece los atributos de formato de párrafo en la selección actual de este objeto CRichEditCtrl.
CRichEditCtrl::SetTargetDevice Establece el dispositivo de salida de destino para este objeto CRichEditCtrl.
CRichEditCtrl::SetTextMode Establece el modo de texto o el nivel de deshacer de un control de edición enriquecido. Se produce un error en el mensaje si el control contiene texto.
CRichEditCtrl::SetUndoLimit Establece el número máximo de acciones que se pueden almacenar en la cola de deshacer.
CRichEditCtrl::SetWordCharFormat Establece los atributos de formato de párrafo en la palabra actual de este objeto CRichEditCtrl.
CRichEditCtrl::SetWordWrapMode Establece las opciones de ajuste de palabras y separación de palabras para el control de edición enriquecido. Este mensaje solo está disponible en versiones de idioma asiático del sistema operativo.
CRichEditCtrl::StopGroupTyping Impide que el control recopile acciones de escritura adicionales en la acción de deshacer actual. El control almacena la siguiente acción de escritura, si existe, en una nueva acción de la cola de deshacer.
CRichEditCtrl::StreamIn Inserta texto de un flujo de entrada en este objeto CRichEditCtrl.
CRichEditCtrl::StreamOut Almacena texto de este objeto CRichEditCtrl en un flujo de salida.
CRichEditCtrl::Undo Invierte la última operación de edición.

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.

Este control de Windows Common (y, por tanto, la clase CRichEditCtrl) solo está disponible para los programas que se ejecutan en Windows 95/98 y Windows NT 3.51, así como en las versiones posteriores de estos. La clase CRichEditCtrl admite las versiones 2.0 y 3.0 del control de edición enriquecido de Windows SDK.

Precaución

Si usa un control de edición enriquecido en un cuadro de diálogo (independientemente de si la aplicación es SDI, MDI o basada en diálogo), debe llamar AfxInitRichEdit una vez antes de que se muestre el cuadro de diálogo. Un lugar típico para llamar a esta función está en la función miembro del programa InitInstance. No es necesario llamarla para cada vez que muestre el cuadro de diálogo, sino solo la primera vez. No tiene que llamar a AfxInitRichEdit si trabaja con CRichEditView.

Para obtener más información sobre el uso de CRichEditCtrl, vea:

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

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CRichEditCtrl

Requisitos

Encabezado: afxcmn.h

CRichEditCtrl::CanPaste

Determina si el control de edición enriquecido puede pegar el formato del Portapapeles especificado.

BOOL CanPaste(UINT nFormat = 0) const;

Parámetros

nFormat
El formato de datos del Portapapeles que se va a consultar. Este parámetro puede ser uno de los formatos predefinidos del Portapapeles o el valor devuelto por RegisterClipboardFormat.

Valor devuelto

Distinto de cero si se puede pegar el formato del Portapapeles; de lo contrario, 0.

Comentarios

Si nFormat es 0, CanPaste probará cualquier formato actualmente en el Portapapeles.

Para obtener más información, consulte el mensaje EM_CANPASTE y la función RegisterClipboardFormat en el SDK de Windows.

Ejemplo

// Paste the clipboard data if possible.
if (m_myRichEditCtrl.CanPaste())
{
   m_myRichEditCtrl.Paste();
}

CRichEditCtrl::CanRedo

Determina si la cola de rehacer contiene acciones.

BOOL CanRedo() const;

Valor devuelto

Distinto de cero si la cola de rehacer contiene acciones; de lo contrario, 0.

Comentarios

Para detectar el nombre de la operación en la cola de rehacer, llame CRichEditCtrl::GetRedoName. Para rehacer la operación Deshacer más reciente, llame Redo.

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

CRichEditCtrl::CanUndo

Determina si se puede deshacer una operación de edición.

BOOL CanUndo() const;

Valor devuelto

Valor distinto de cero si la última operación de edición se puede deshacer mediante una llamada a la función miembro Undo; 0 si no se puede deshacer.

Comentarios

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

Ejemplo

// Undo the last operation, if possible.
if (m_myRichEditCtrl.CanUndo())
   m_myRichEditCtrl.Undo();

CRichEditCtrl::CharFromPos

Recupera información sobre el carácter en el punto especificado por el parámetro pt.

int CharFromPos(CPoint pt) const;

Parámetros

pt
Objeto CPoint que contiene las coordenadas del punto especificado.

Valor devuelto

Índice de caracteres de base cero del carácter más cercano al punto especificado. Si el punto especificado está más allá del último carácter del control, el valor devuelto indica el último carácter del control.

Comentarios

Esta función miembro funciona con un control de edición enriquecido. Para obtener la información de un control de edición, llame a CEdit::CharFromPos.

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

CRichEditCtrl::Clear

Elimina (borra) la selección actual (si la hubiera) del control de edición.

void Clear();

Comentarios

La eliminación realizada por Clear se puede deshacer mediante una llamada a la función miembro Undo.

Para eliminar la selección actual y colocar el contenido eliminado en el portapapeles, use la función miembro Cut.

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

Ejemplo

// Delete all of the text.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Clear();

CRichEditCtrl::Copy

Copia la selección actual (si la hubiera) del control de edición en el Portapapeles.

void Copy();

Comentarios

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

Ejemplo

// Copy all of the text to the clipboard.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Copy();

CRichEditCtrl::Create

Crea el control de edición enriquecida de Windows y lo asocia a este objeto CRichEditCtrl.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parámetros

dwStyle
Especifica el estilo del control de edición. Aplique una combinación de los estilos de ventana enumerados en la sección Comentarios a continuación y edite los estilos de control descritos en Windows SDK.

rect
Especifica el tamaño y la posición del control de edición. Puede ser un objeto CRect o una estructura RECT.

pParentWnd
Especifica la ventana primaria del control de edición (a menudo CDialog). Este valor no debe ser NULL.

nID
Especifica el identificador del control de edición.

Valor devuelto

Valor distinto de cero si la inicialización se realiza correctamente; de lo contrario, es 0.

Comentarios

El objeto CRichEditCtrl se construye en dos pasos. En primer lugar, llame al constructor CRichEditCtrl y luego a Create, lo que crea el control de edición de Windows y lo adjunta al objeto CRichEditCtrl.

Al crear un control de edición enriquecido con esta función, primero debe cargar la biblioteca de controles comunes necesaria. Para cargar la biblioteca, llame a la función global AfxInitRichEdit, que a su vez inicializa la biblioteca de controles comunes. Solo debe llamar AfxInitRichEdit una vez en el proceso.

Cuando Create se ejecuta, Windows envía los mensajes WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE y WM_GETMINMAXINFO al control de edición.

Estos mensajes se controlan de forma predeterminada mediante las funciones miembro OnNcCreate, OnNcCalcSize, OnCreate y OnGetMinMaxInfo de la clase base CWnd. Para ampliar el control de mensajes predeterminado, derive una clase de CRichEditCtrl, agregue una asignación de mensajes a la nueva clase e invalide las funciones miembro del controlador de mensajes anteriores. Invalide OnCreate, por ejemplo, para realizar la inicialización necesaria para la nueva clase.

Aplique los siguientes estilos de ventana a un control de edición.

  • WS_CHILD Siempre.

  • WS_VISIBLE Normalmente.

  • WS_DISABLED Raramente.

  • WS_GROUP Para agrupar controles.

  • WS_TABSTOP Para incluir el control de edición en el orden de tabulación.

Para obtener más información sobre los estilos de ventana, consulte CreateWindow en Windows SDK.

Ejemplo

m_myRichEditCtrl.Create(
    WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE,
    CRect(10, 10, 100, 200), pParentWnd, IDD_RICHEDITCTRL);

CRichEditCtrl::CreateEx

Esta función puede usarse para crear un control (una ventana secundaria) y asociarlo con el objeto CRichEditCtrl.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parámetros

dwExStyle
El valor de este parámetro se usa para especificar el estilo extendido del control que se va a crear. Para obtener una lista de estilos extendidos de Windows, consulte el parámetro dwExStyle de la función CreateWindowEx en Windows SDK.

dwStyle
Especifica el estilo del control de edición. Aplique una combinación de los estilos de ventana enumerados en la sección Comentarios de Create y edite los estilos de control descritos en Windows SDK.

rect
Una referencia a una estructura RECT describiendo el tamaño y la posición de la ventana a crear, en las coordenadas cliente de pParentWnd.

pParentWnd
Un puntero a la ventana que constituye el elemento primario del control.

nID
El identificador de ventana secundaria del control.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Usa la función CreateEx, en lugar de Create, para aplicar estilos extendidos de Windows. Estos se especifican en el prefacio de estilo extendido WS_EX_ de Windows.

CRichEditCtrl::CRichEditCtrl

Construye un objeto CRichEditCtrl.

CRichEditCtrl();

Comentarios

Use Create para construir el control de edición enriquecido de Windows.

Ejemplo

// Declare a local CRichEditCtrl object.
CRichEditCtrl myRichEditCtrl;

// Declare a dynamic CRichEditCtrl object.
CRichEditCtrl* pRichEditCtrl = new CRichEditCtrl;

CRichEditCtrl::Cut

Elimina (corta) la selección actual (si la hubiera) del control de edición enriquecido y copia el texto eliminado en el Portapapeles.

void Cut();

Comentarios

La eliminación realizada por Cut se puede deshacer mediante una llamada a la función miembro Undo.

Para eliminar la selección actual sin colocar el texto eliminado en el Portapapeles, llame a la función miembro Clear.

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

Ejemplo

// Delete all of the text and copy it to the clipboard.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Cut();

CRichEditCtrl::DisplayBand

Muestra una parte del contenido del control de edición enriquecido (texto y elementos OLE), tal y como FormatRange ha dado formato anteriormente.

BOOL DisplayBand(LPRECT pDisplayRect);

Parámetros

pDisplayRect
Puntero a un objeto RECT o CRect que especifica el área del dispositivo para mostrar el texto.

Valor devuelto

Distinto de cero si la presentación del texto con formato se realiza correctamente; de lo contrario, es 0.

Comentarios

El texto y los elementos OLE se recortan en el área especificada por el puntero pDisplayRect.

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

Ejemplo

Vea el ejemplo de CRichEditCtrl::FormatRange.

CRichEditCtrl::EmptyUndoBuffer

Restablece (borra) la marca de deshacer de este control de edición enriquecido.

void EmptyUndoBuffer();

Comentarios

El control de edición ya no podrá deshacer la última operación. La marca de deshacer se establece cada vez que se puede deshacer una operación dentro del control de edición enriquecido.

La marca de deshacer se borra automáticamente cada vez que se llama a la CWnd función miembroSetWindowText.

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

Ejemplo

// Clear the undo buffer.
if (m_myRichEditCtrl.CanUndo())
{
   m_myRichEditCtrl.EmptyUndoBuffer();
   ASSERT(!m_myRichEditCtrl.CanUndo());
}

CRichEditCtrl::FindText

Busca texto en el control de edición enriquecida.

long FindText(
    DWORD dwFlags,
    FINDTEXTEX* pFindText) const;

Parámetros

dwFlags
Para ver una lista de valores posibles, consulte wParam en EM_FINDTEXTEXT en Windows SDK.

pFindText
Puntero a la estructura FINDTEXTEX que proporciona los parámetros para la búsqueda y devuelve el intervalo donde se encontró la coincidencia.

Valor devuelto

Posición de carácter de base cero de la siguiente coincidencia; - 1 si no hay más coincidencias.

Comentarios

Puede buscar hacia arriba o hacia abajo estableciendo los parámetros de intervalo adecuados en la estructura CHARRANGE dentro de la estructura FINDTEXTEX.

Para más información, consulte el mensaje EM_FINDTEXTEX y la estructura FINDTEXTEX en Windows SDK.

Ejemplo

// Set the selection to be the first occurrence of the
// string lpszmyString, if it is found.
FINDTEXTEX ft;
ft.chrg.cpMin = 0;
ft.chrg.cpMax = 50;
ft.lpstrText = _T("wallaby");
long n = m_myRichEditCtrl.FindText(FR_MATCHCASE | FR_WHOLEWORD, &ft);
if (n != -1)
   m_myRichEditCtrl.SetSel(ft.chrgText);

CRichEditCtrl::FindWordBreak

Busca el siguiente salto de palabra antes o después de la posición especificada por nStart.

DWORD FindWordBreak(
    UINT nCode,
    DWORD nStart) const;

Parámetros

nCode
Indica la acción que se debe realizar. Para obtener una lista de los valores posibles, consulte la descripción del parámetro code en EM_FINDWORDBREAK en Windows SDK.

nStart
Posición de carácter basada en cero desde la que se va a iniciar.

Valor devuelto

Basado en el parámetro nCode. Para más información, consulte EM_FINDWORDBREAK en Windows SDK.

Comentarios

Puede usar esta función miembro para recuperar información sobre un carácter en una posición determinada.

CRichEditCtrl::FormatRange

Da formato a un intervalo de texto en un control de edición enriquecido para un dispositivo específico.

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

Parámetros

pfr
Puntero a la estructura FORMATRANGE que contiene información sobre el dispositivo de salida. NULL indica que la información almacenada en caché en el control de edición enriquecido se puede liberar.

bDisplay
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 la región más uno.

Comentarios

Normalmente, esta llamada va seguida de una llamada a DisplayBand.

Para más información, consulte el mensaje EM_FORMATRANGE y la estructura FORMATRANGE en Windows SDK.

Ejemplo

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

CRichEditCtrl::GetCharPos

Obtiene la posición (esquina superior izquierda) de un carácter determinado dentro de este objeto CRichEditCtrl.

CPoint GetCharPos(long lChar) const;

Parámetros

lChar
Índice de base cero del carácter.

Valor devuelto

Ubicación de la esquina superior izquierda del carácter especificado por lChar.

Comentarios

El carácter se especifica mediante su valor de índice de base cero. Si lChar es mayor que el índice del último carácter de este objeto CRichEditCtrl, el valor devuelto especifica las coordenadas de la posición del carácter justo después del último carácter de este objeto CRichEditCtrl.

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

CRichEditCtrl::GetDefaultCharFormat

Obtiene los atributos de formato de caracteres predeterminados de este objeto CRichEditCtrl.

DWORD GetDefaultCharFormat(CHARFORMAT& cf) const;  DWORD GetDefaultCharFormat(CHARFORMAT2& cf) const;

Parámetros

cf
En la primera versión, un puntero a una estructura CHARFORMAT que contiene los atributos de formato de caracteres predeterminados.

En la segunda versión, un puntero a una estructura CHARFORMAT2, que es una extensión Rich Edit 2.0 a la estructura CHARFORMAT, que contiene los atributos de formato de caracteres predeterminados.

Valor devuelto

Miembro de datos dwMask de cf. Especificó los atributos de formato de caracteres predeterminados.

Comentarios

Para obtener más información, consulte el mensaje EM_GETCHARFORMAT, CHARFORMAT y las estructuras CHARFORMAT2 en Windows SDK.

Ejemplo

Vea el ejemplo de SetDefaultCharFormat.

CRichEditCtrl::GetEventMask

Obtiene la máscara de eventos para este objeto CRichEditCtrl.

long GetEventMask() const;

Valor devuelto

La máscara de eventos para este objeto CRichEditCtrl.

Comentarios

La máscara de eventos especifica qué mensajes de notificación envía el objeto CRichEditCtrl a su ventana primaria.

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

Ejemplo

Vea el ejemplo de CRichEditCtrl::SetEventMask.

CRichEditCtrl::GetFirstVisibleLine

Determina la línea visible situada más arriba en este objeto CRichEditCtrl.

int GetFirstVisibleLine() const;

Valor devuelto

Índice de base cero de la línea visible más alta de este objeto CRichEditCtrl.

Comentarios

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

Ejemplo

int nFirstVisible = m_myRichEditCtrl.GetFirstVisibleLine();

// Scroll the rich edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
   m_myRichEditCtrl.LineScroll(-nFirstVisible, 0);
}

CRichEditCtrl::GetIRichEditOle

Obtiene acceso a la interfaz IRichEditOle de este objeto CRichEditCtrl.

IRichEditOle* GetIRichEditOle() const;

Valor devuelto

Puntero a la interfaz IRichEditOle que se puede usar para tener acceso a la funcionalidad OLE de este objeto CRichEditCtrl; NULL si la interfaz no es accesible.

Comentarios

Use esta interfaz para acceder a la funcionalidad OLE de este objeto CRichEditCtrl.

Para más información, consulte el mensaje EM_GETOLEINTERFACE y la interfaz IRichEditOle en Windows SDK.

CRichEditCtrl::GetLimitText

Obtiene el límite de texto de este objeto CRichEditCtrl.

long GetLimitText() const;

Valor devuelto

Límite de texto actual, en bytes, de este objeto CRichEditCtrl.

Comentarios

El límite de texto es la cantidad máxima de texto, en bytes, que el control de edición enriquecido puede aceptar.

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

Ejemplo

// The new text of the rich edit control.
LPCTSTR lpszmyString = _T("Here's some text in our rich edit control!");
long nLength = (long)_tcslen(lpszmyString);

// Want the text limit to be at least the size of the new string.
if (m_myRichEditCtrl.GetLimitText() < nLength)
   m_myRichEditCtrl.LimitText(nLength);

m_myRichEditCtrl.SetWindowText(lpszmyString);

CRichEditCtrl::GetLine

Recupera una línea de texto de este objeto CRichEditCtrl.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer,
    int nMaxLength) const;

Parámetros

nIndex
Índice de base cero de la línea que se va a recuperar.

lpszBuffer
Apunta al búfer para recibir el texto. La primera palabra del búfer debe especificar el número máximo de bytes que se pueden copiar en el búfer.

nMaxLength
Número máximo de caracteres que se pueden copiar en lpszBuffer. La segunda forma de GetLine coloca este valor en la primera palabra del búfer especificado por lpszBuffer.

Valor devuelto

Número de caracteres copiados en lpszBuffer.

Comentarios

La línea copiada no contiene un carácter de terminación nulo.

Nota:

Dado que la primera palabra del búfer almacena el número de caracteres que se van a copiar, asegúrese de que el búfer tenga al menos 4 bytes de longitud.

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

Ejemplo

Vea el ejemplo de GetLineCount.

CRichEditCtrl::GetLineCount

Recupera el número de líneas de este objeto CRichEditCtrl.

int GetLineCount() const;

Valor devuelto

Número de líneas de este objeto CRichEditCtrl.

Comentarios

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

Ejemplo

int nLineLength, nLineIndex, nLineCount = m_myRichEditCtrl.GetLineCount();
CString strText, strLine;

// Dump every line of text of the rich edit control.
for (int i = 0; i < nLineCount; i++)
{
   nLineIndex = m_myRichEditCtrl.LineIndex(i);
   nLineLength = m_myRichEditCtrl.LineLength(nLineIndex);
   m_myRichEditCtrl.GetLine(i, strText.GetBufferSetLength(nLineLength + 1),
                            nLineLength);
   strText.SetAt(nLineLength, _T('\0')); // null terminate
   strText.ReleaseBuffer(nLineLength + 1);

   TRACE(_T("line %d: '%s'\r\n"), i, strText);
}

CRichEditCtrl::GetModify

Determina si se ha modificado el contenido de este objeto CRichEditCtrl.

BOOL GetModify() const;

Valor devuelto

Distinto de cero si se ha modificado el texto de este objeto CRichEditCtrl; en caso contrario, 0.

Comentarios

Windows mantiene una marca interna que indica si se ha modificado el contenido del control de edición enriquecido. Esta marca se borra cuando se crea por primera vez el control de edición y también se puede borrar si se llama a la función miembro SetModify.

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

Ejemplo

// Reset the modified state only if the text has been modified.
if (m_myRichEditCtrl.GetModify())
   m_myRichEditCtrl.SetModify(FALSE);

CRichEditCtrl::GetOptions

Recupera las opciones establecidas actualmente para el control de edición enriquecido.

UINT GetOptions() const;

Valor devuelto

Combinación de los valores de marca de opción actuales. Para obtener una lista de estos valores, vea el parámetro fOptions en el mensaje EM_SETOPTIONS, como se describe en Windows SDK.

CRichEditCtrl::GetParaFormat

Obtiene los atributos de formato de párrafo de la selección actual.

DWORD GetParaFormat(PARAFORMAT& pf) const;  DWORD GetParaFormat(PARAFORMAT2& pf) const;

Parámetros

pf
En la primera versión, un puntero a una estructura PARAFORMAT que contiene los atributos de formato de párrafo de la selección actual.

En la segunda versión, un puntero a una estructura PARAFORMAT2, que es una extensión Rich Edit 2.0 a la estructura PARAFORMAT, que contiene los atributos de formato de caracteres predeterminados.

Valor devuelto

Miembro de datos dwMask de pf. Especifica los atributos de formato de párrafo que son coherentes a lo largo de la selección actual.

Comentarios

Si se selecciona más de un párrafo, pf recibe los atributos del primer párrafo seleccionado. El valor devuelto especifica qué atributos son coherentes a lo largo de la selección.

Para obtener más información, consulte el mensaje EM_GETPARAFORMAT, PARAFORMAT y las estructuras PARAFORMAT2 en Windows SDK.

Ejemplo

Vea el ejemplo de CRichEditCtrl::SetParaFormat.

CRichEditCtrl::GetPunctuation

Obtiene los caracteres de puntuación actuales en un control de edición enriquecido.

BOOL GetPunctuation(
    UINT fType,
    PUNCTUATION* lpPunc) const;

Parámetros

fType
Marca de tipo de puntuación, como se describe en el parámetro fType de EM_GETPUNCTUATION en Windows SDK.

lpPunc
Puntero a una estructura PUNCTUATION, como se describe en Windows SDK.

Valor devuelto

Distinto de cero si la operación es correcta; en caso contrario, 0.

Comentarios

Esta función miembro solo está disponible con las versiones de idioma asiático del sistema operativo.

CRichEditCtrl::GetRect

Recupera el rectángulo de formato de este objeto CRichEditCtrl.

void GetRect(LPRECT lpRect) const;

Parámetros

lpRect
CRect o puntero a un RECT para recibir el rectángulo de formato de este objeto CRichEditCtrl.

Comentarios

El rectángulo de formato es el rectángulo delimitador del texto. Este valor es independiente del tamaño del objeto CRichEditCtrl.

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

Ejemplo

Vea el ejemplo de LimitText.

CRichEditCtrl::GetRedoName

Recupera el tipo de la siguiente acción disponible en la cola de rehacer, si existe.

UNDONAMEID GetRedoName() const;

Valor devuelto

Si se ejecuta correctamente, GetRedoName devuelve el tipo de enumeración UNDONAMEID que indica el tipo de la siguiente acción en la cola de rehacer del control. Si la cola de rehacer está vacía o si la acción rehacer en la cola es de un tipo desconocido, GetRedoName devuelve 0.

Comentarios

Los tipos de acciones que se pueden deshacer o rehacer incluyen operaciones de escritura, eliminación, arrastrar y colocar, cortar y pegar. Esta información puede ser útil para las aplicaciones que proporcionan una interfaz de usuario extendida para las operaciones Deshacer y Rehacer, como un cuadro de lista desplegable de acciones que se pueden rehacer.

CRichEditCtrl::GetSel

Recupera los límites de la selección actual en este objeto CRichEditCtrl.

void GetSel(CHARRANGE& cr) const;

void GetSel(
    long& nStartChar,
    long& nEndChar) const;

Parámetros

cr
Referencia a una estructura CHARRANGE para recibir los límites de la selección actual.

nStartChar
Índice de base cero del primer carácter en la selección actual.

nEndChar
Índice de base cero del último carácter en la selección actual.

Comentarios

Las dos formas de esta función proporcionan formas alternativas de obtener los límites de la selección. A continuación, se describen brevemente estos valores:

  • GetSel( cr ) Este formulario usa la CHARRANGE estructura con sus cpMin miembros y cpMax para devolver los límites.

  • GetSel( nStartChar , nEndChar ) Este formulario devuelve los límites de los parámetros nStartChar y nEndChar.

La selección incluye todo si el principio (cpMin o nStartChar) es 0 y el final (cpMax o nEndChar) es -1.

Para más información, consulte el mensaje EM_EXGETSEL y la estructura CHARRANGE en Windows SDK.

Ejemplo

// Set the selection to be all characters after the current selection.
long nStartChar, nEndChar;

m_myRichEditCtrl.GetSel(nStartChar, nEndChar);
m_myRichEditCtrl.SetSel(nEndChar, -1);

CRichEditCtrl::GetSelectionCharFormat

Obtiene los atributos de formato de párrafo de la selección actual.

DWORD GetSelectionCharFormat(CHARFORMAT& cf) const;  DWORD GetSelectionCharFormat(CHARFORMAT2& cf) const;

Parámetros

cf
En la primera versión, un puntero a una estructura CHARFORMAT que recibe los atributos de formato de carácter de la selección actual.

En la segunda versión, un puntero a una estructura CHARFORMAT2, que es una extensión Rich Edit 2.0 a la estructura CHARFORMAT, que recibe los atributos de formato de carácter de la selección actual.

Valor devuelto

Miembro de datos dwMask de cf. Especifica los atributos de formato de carácter que son coherentes a lo largo de la selección actual.

Comentarios

El parámetro cf recibe los atributos del primer carácter de la selección actual. El valor devuelto especifica qué atributos son coherentes a lo largo de la selección.

Para obtener más información, consulte el mensaje EM_GETCHARFORMAT, CHARFORMAT y las estructuras CHARFORMAT2 en Windows SDK.

Ejemplo

Vea el ejemplo de SetSelectionCharFormat.

CRichEditCtrl::GetSelectionType

Determina el tipo de selección de este objeto CRichEditCtrl.

WORD GetSelectionType() const;

Valor devuelto

Marcas que indican el contenido de la selección actual. Una 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.

Comentarios

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

Ejemplo

// Dump the selection text only if it contains at least one text character.
if (m_myRichEditCtrl.GetSelectionType() & (SEL_TEXT | SEL_MULTICHAR))
{
   CString strText = m_myRichEditCtrl.GetSelText();

   TRACE(_T("selection text is '%s'.\r\n"), strText);
}

CRichEditCtrl::GetSelText

Recupera el texto de la selección actual en este objeto CRichEditCtrl.

long GetSelText(LPSTR lpBuf) const;  CString GetSelText() const;

Parámetros

lpBuf
Puntero al búfer para recibir el texto de la selección actual.

Valor devuelto

Depende del formulario:

  • GetSelText(lpBuf) Número de caracteres copiados en lpBuf, sin incluir la terminación null.

  • GetSelText( ) Cadena que contiene la selección actual.

Comentarios

Si usa el primer formulario, GetSelText(lpBuf), debe asegurarse de que el búfer es lo suficientemente grande para el texto que recibirá. Llame a GetSel para determinar el número de caracteres de la selección actual.

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

Ejemplo

Vea el ejemplo de CRichEditCtrl::GetSelectionType.

CRichEditCtrl::GetTextLength

Recupera la longitud del texto, en caracteres, en este objeto CRichEditCtrl, sin incluir el carácter nulo de terminación.

long GetTextLength() const;

Valor devuelto

Longitud del texto de este objeto CRichEditCtrl.

Comentarios

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

Ejemplo

// Limit the rich edit controls text to the number of
// characters currently in it.
m_myRichEditCtrl.LimitText(m_myRichEditCtrl.GetTextLength());

CRichEditCtrl::GetTextLengthEx

Calcula la longitud del texto en el control de edición enriquecida.

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. Consulte Acerca de los controles de edición enriquecidos en el SDK de Windows para obtener más información.

CRichEditCtrl::GetTextMode

Recupera el modo de texto actual y el nivel de deshacer de un control de edición enriquecido.

UINT GetTextMode() const;

Valor devuelto

Conjunto de marcas de bits del tipo de enumeración TEXTMODE, como se describe en Windows SDK. Las marcas indican el modo de texto actual y el nivel de deshacer del control.

CRichEditCtrl::GetTextRange

Obtiene el intervalo de caracteres especificado.

int GetTextRange(
    int nFirst,
    int nLast,
    CString& refString) const;

Parámetros

nFirst
Índice de posición de caracteres inmediatamente anterior al primer carácter del intervalo.

nLast
Posición del carácter inmediatamente después del último carácter del intervalo.

refString
Referencia a un objeto CString que recibirá el texto.

Valor devuelto

Número de caracteres copiados, sin incluir el carácter nulo finalizado.

Comentarios

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

GetTextRange admite la funcionalidad Rich Edit 2.0. Consulte Acerca de los controles de edición enriquecidos en el SDK de Windows para obtener más información.

CRichEditCtrl::GetUndoName

Recupera el tipo de la siguiente acción disponible en la cola de rehacer, si existe.

UNDONAMEID GetUndoName() const;

Valor devuelto

Si una acción de deshacer está en la cola de deshacer del control, GetUndoName devuelve el tipo de enumeración UNDONAMEID que indica el tipo de la acción siguiente en la cola. Si la cola de rehacer está vacía o si la acción rehacer en la cola es de un tipo desconocido, GetUndoName devuelve 0.

Comentarios

Los tipos de acciones que se pueden deshacer o rehacer incluyen operaciones de escritura, eliminación, arrastrar y colocar, cortar y pegar. Esta información puede ser útil para las aplicaciones que proporcionan una interfaz de usuario extendida para las operaciones Deshacer y Rehacer, como un cuadro de lista desplegable de acciones que se pueden deshacer.

CRichEditCtrl::GetWordWrapMode

Recupera las opciones actuales de ajuste de palabras y separación de palabras para el control de edición enriquecido.

UINT GetWordWrapMode() const;

Valor devuelto

Opciones actuales de ajuste de palabras y separación de palabras. Estas opciones se describen en EM_SETWORDWRAPMODE en Windows SDK.

Comentarios

Esta función miembro solo está disponible para las versiones de idioma asiático del sistema operativo.

CRichEditCtrl::HideSelection

Cambia la visibilidad de la selección.

void HideSelection(
    BOOL bHide,
    BOOL bPerm);

Parámetros

bHide
Indica si se debe mostrar u ocultar la selección, TRUE para ocultar la selección.

bPerm
Indica si este cambio en la visibilidad de la selección debe ser permanente.

Comentarios

Cuando bPerm es TRUE, cambia la opción ECO_NOHIDESEL de este objeto CRichEditCtrl. Para ver una descripción detallada de esta opción, consulte SetOptions. Puede usar esta función para establecer todas las opciones de este objeto CRichEditCtrl.

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

Ejemplo

// Show the selection and make it permanent.
m_myRichEditCtrl.HideSelection(FALSE, TRUE);

CRichEditCtrl::LimitText

Limita la longitud del texto que el usuario puede escribir en un control de edición.

void LimitText(long nChars = 0);

Parámetros

nChars
Especifica la longitud (en bytes) del texto que el usuario pueda escribir. Si este parámetro es 0 (el valor predeterminado), la longitud del texto se establece en 64 000 bytes.

Comentarios

Si se modifica el límite de texto, solo se restringe el texto que el usuario puede escribir. No tiene ningún efecto sobre ningún texto que ya esté en el control de edición, ni afecta a la longitud del texto copiado en el control de edición por la función miembro SetWindowText en CWnd. Si una aplicación usa la función SetWindowText para colocar más texto en un control de edición que se especifica en la llamada a LimitText, el usuario puede eliminar cualquier texto del control de edición. Pero el límite de texto evita que el usuario reemplace el texto existente por nuevo, a menos que la eliminación de la selección actual haga que el texto esté por debajo del límite de texto.

Nota:

Para el límite de texto, cada elemento OLE cuenta como un solo carácter.

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

Ejemplo

// Limit the number of characters to be the maximum number visible.

// Get the text metrics for the edit; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDC = m_myRichEditCtrl.GetDC();
pDC->GetTextMetrics(&tm);
m_myRichEditCtrl.ReleaseDC(pDC);

CRect r;
m_myRichEditCtrl.GetRect(&r);
m_myRichEditCtrl.LimitText(r.Width() / tm.tmAveCharWidth);

CRichEditCtrl::LineFromChar

Recupera el número de línea de la línea que contiene el índice de caracteres especificado.

long LineFromChar(long nIndex) const;

Parámetros

nIndex
Contiene el valor de índice de base cero del carácter deseado en el texto del control de edición, o contiene -1. Si nIndex es -1, especifica la línea actual, es decir, la línea que contiene el símbolo de inserción.

Valor devuelto

Número de línea de base cero de la línea que contiene el índice de caracteres especificado por nIndex. Si nIndex es -1, se devuelve el número de la línea que contiene el primer carácter de la selección. Si no hay ninguna selección, se devuelve el número de línea actual.

Comentarios

Un índice de caracteres es el número de caracteres desde el principio del control de edición. Para el recuento de caracteres, un elemento OLE se cuenta como un solo carácter.

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

Ejemplo

// The index of the char to get information on.
int nIndex = 11;

CString strText;

m_myRichEditCtrl.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);

// Dump the index, character and line number.
TRACE(_T("nIndex = %d, character = %c, line = %d\r\n"),
      nIndex, strText[0], m_myRichEditCtrl.LineFromChar(nIndex));

CRichEditCtrl::LineIndex

Recupera el índice de caracteres de una línea en este objeto CRichEditCtrl.

int LineIndex(int nLine = -1) const;

Parámetros

nLine
Contiene el valor de índice de la línea deseada en el texto del control de edición, o contiene -1. Si nLine es -1, especifica la línea actual, es decir, la línea que contiene el símbolo de inserción.

Valor devuelto

Índice de caracteres de la línea especificada en nLine o -1 si el número de línea especificado es mayor que el número de líneas del control de edición.

Comentarios

El índice de caracteres es el número de caracteres desde el principio del control de edición hasta la línea especificada.

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

Ejemplo

// The string for replacing.
LPCTSTR lpszmyString = _T("Hello, I'm the new second line.");

int nBegin, nEnd, nIndex;

// Replace the second line, if it exists, of the rich edit control
// with the text lpszmyString.
nIndex = m_myRichEditCtrl.LineIndex(1);
if ((nBegin = nIndex) != -1)
{
   nEnd = nBegin + m_myRichEditCtrl.LineLength(nIndex);
   m_myRichEditCtrl.SetSel(nBegin, nEnd);
   m_myRichEditCtrl.ReplaceSel(lpszmyString);
}

CRichEditCtrl::LineLength

Recupera la longitud de una línea de un control de edición enriquecido.

int LineLength(int nLine = -1) const;

Parámetros

nLine
Especifica el índice de un carácter en la línea cuya longitud se va a recuperar. Si este parámetro es -1, se devuelve la longitud de la línea actual (la línea que contiene el símbolo de inserción), sin incluir la longitud de ningún texto seleccionado dentro de la línea. Cuando LineLength se llama a para un control de edición de una sola línea, se omite este parámetro.

Valor devuelto

Cuando se llama a LineLength para un control de edición de varias líneas, el valor devuelto es la longitud (en TCHAR) de la línea especificada por nLine. Ello no incluye el carácter de retorno de carro del final de la línea. Cuando se llama a LineLength para una sola línea de control de edición, el valor devuelto es la longitud (en TCHAR) del texto del control de edición. Si nLine es mayor que el número de caracteres del control, el valor devuelto es cero.

Comentarios

Utilice la función miembro LineIndex para recuperar un índice de caracteres para un número de línea determinado en este objeto CRichEditCtrl.

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

Ejemplo

Vea el ejemplo de LineIndex.

CRichEditCtrl::LineScroll

Desplaza el texto de un control de edición de varias líneas.

void LineScroll(
    int nLines,
    int nChars = 0);

Parámetros

nLines
Especifica el número de líneas que se va a desplazar en vertical.

nChars
Especifica el número de posiciones de caracteres que se va a desplazar en horizontal. Este valor se omite si el control de edición enriquecido posee el estilo ES_RIGHT o ES_CENTER. Los estilos de edición se especifican en Create.

Comentarios

El control de edición no desplaza verticalmente más allá de la última línea de texto del control de edición. Si la línea actual más el número de líneas especificado por nLines supera el número total de líneas del control de edición, el valor se ajusta para que la última línea del control de edición se desplace hasta la parte superior de la ventana de control de edición.

LineScroll se puede usar para desplazar horizontalmente más allá del último carácter de cualquier línea.

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

Ejemplo

Vea el ejemplo de GetFirstVisibleLine.

CRichEditCtrl::Paste

Inserta los datos del Portapapeles en CRichEditCtrl en el punto de inserción, la ubicación del símbolo de inserción.

void Paste();

Comentarios

Los datos solo se insertan si el Portapapeles contiene datos en un formato conocido.

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

Ejemplo

// Replace all of the text with the text in the clipboard.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Paste();

CRichEditCtrl::PasteSpecial

Pega los datos en un formato específico del Portapapeles en este objeto CRichEditCtrl.

void PasteSpecial(
    UINT nClipFormat,
    DWORD dvAspect = 0,
    HMETAFILE hMF = 0);

Parámetros

nClipFormat
Formato del Portapapeles para pegarlo en este objeto CRichEditCtrl.

dvAspect
Aspecto del dispositivo para los datos que se van a recuperar del Portapapeles.

hMF
Identificador del metarchivo que contiene la vista icónica del objeto que se va a pegar.

Comentarios

El nuevo material se inserta en el punto de inserción, la ubicación del símbolo de inserción.

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

Ejemplo

// Paste the data from the clipboard as text.
m_myRichEditCtrl.PasteSpecial(CF_TEXT);

CRichEditCtrl::PosFromChar

Recupera las coordenadas del área de cliente de un carácter especificado en un control de edición.

CPoint PosFromChar(UINT nChar) const;

Parámetros

nChar
El índice de base cero del carácter.

Valor devuelto

La posición del carácter (x, y). Para un control de edición de una sola línea, la coordenada y siempre es cero.

Comentarios

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

CRichEditCtrl::Redo

Rehace la siguiente acción en la cola de rehacer del control.

BOOL Redo();

Valor devuelto

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

Comentarios

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

CRichEditCtrl::ReplaceSel

Reemplaza la selección actual de este objeto CRichEditCtrl por el texto especificado.

void ReplaceSel(
    LPCTSTR lpszNewText,
    BOOL bCanUndo = FALSE);

Parámetros

lpszNewText
Puntero en una cadena terminada en null que contiene el texto de sustitución.

bCanUndo
Para especificar que esta función se puede deshacer, establezca el valor de este parámetro en TRUE. El valor predeterminado es FALSE.

Comentarios

Para reemplazar todo el texto de este objeto CRichEditCtrl, use CWnd::SetWindowText.

Si no hay ninguna selección actual, el texto de reemplazo se inserta en el punto de inserción, es decir, en la ubicación del símbolo de inserción actual.

Esta función dará formato al texto insertado con el formato de caracteres existente. Al reemplazar todo el intervalo de texto (llamando a SetSel (0,-1) antes de llamar a ReplaceSel), hay un carácter final de párrafo que conserva el formato del párrafo anterior, y que lo hereda el texto recién insertado.

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

Ejemplo

Vea el ejemplo de LineIndex.

CRichEditCtrl::RequestResize

Obliga a este objeto CRichEditCtrl a enviar mensajes de notificación EN_REQUESTRESIZE a su ventana primaria.

void RequestResize();

Comentarios

Esta función es útil durante el procesamiento CWnd::OnSize de un objeto CRichEditCtrl sin fondo.

Para obtener más información, vea el mensaje EM_REQUESTRESIZE y la sección Controles de edición enriquecida sin fondo de Acerca de los controles de edición enriquecidos en Windows SDK.

CRichEditCtrl::SetAutoURLDetect

Establece el control de edición enriquecido para detectar automáticamente una dirección URL.

BOOL SetAutoURLDetect(BOOL bEnable = TRUE);

Parámetros

bEnable
Especifica si el control se establece para detectar automáticamente una dirección URL. Si es TRUE, está habilitado. Si es FALSE, está deshabilitado.

Valor devuelto

Es distinto de cero si es correcto. En caso contrario, es cero. Por ejemplo, el mensaje puede producir un error debido a una memoria insuficiente.

Comentarios

Si está habilitado, el control de edición enriquecido examinará el texto para determinar si coincide con un formato de dirección URL estándar. Para obtener una lista de estos formatos de dirección URL, consulte EM_AUTOURLDETECT en Windows SDK.

Nota:

No establezca SetAutoURLDetect en TRUE si el control de edición usa el efecto CFE_LINK para texto distinto de las direcciones URL. SetAutoURLDetect habilita este efecto para las direcciones URL y lo deshabilita para el resto de texto. Vea EN_LINK para obtener más información acerca del efecto CFE_LINK.

CRichEditCtrl::SetBackgroundColor

Establece el color de fondo de este objeto CRichEditCtrl.

COLORREF SetBackgroundColor(
    BOOL bSysColor,
    COLORREF cr);

Parámetros

bSysColor
Indica si el color de fondo debe establecerse como el valor del sistema. Si este valor es TRUE, cr se omite.

cr
Color de fondo solicitado. Solo se usa si bSysColor es FALSE.

Valor devuelto

El color de fondo previo para este objeto CRichEditCtrl.

Comentarios

El color de fondo se puede establecer en el valor del sistema o en un valor COLORREF especificado.

Para más información, consulte el mensaje EM_SETBKGNDCOLOR y la estructura COLORREF en Windows SDK.

Ejemplo

// Use red as the background color.
m_myRichEditCtrl.SetBackgroundColor(FALSE, RGB(255, 0, 0));

CRichEditCtrl::SetDefaultCharFormat

Establece los atributos de formato de caracteres para el nuevo texto de este objeto CRichEditCtrl.

BOOL SetDefaultCharFormat(CHARFORMAT& cf);
BOOL SetDefaultCharFormat(CHARFORMAT2& cf);

Parámetros

cf
En la primera versión, un puntero a una estructura CHARFORMAT que contiene los atributos de formato de caracteres predeterminados.

En la segunda versión, un puntero a una estructura CHARFORMAT2, que es una extensión Rich Edit 2.0 a la estructura CHARFORMAT, que contiene los atributos de formato de caracteres 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 cf .

Para obtener más información, consulte el mensaje EM_SETCHARFORMAT, CHARFORMAT y las estructuras CHARFORMAT2 en Windows SDK.

Ejemplo

CHARFORMAT cf = {0};

// Modify the default character format so that all new
// text is striked out and not bold.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_STRIKEOUT;
m_myRichEditCtrl.SetDefaultCharFormat(cf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetDefaultCharFormat(cf);
ASSERT((cf.dwMask & (CFM_STRIKEOUT | CFM_BOLD)) ==
       (CFM_STRIKEOUT | CFM_BOLD));
ASSERT((cf.dwEffects & (CFE_STRIKEOUT | CFE_BOLD)) == CFE_STRIKEOUT);

CRichEditCtrl::SetEventMask

Recupera la máscara de eventos de este objeto CRichEditCtrl.

DWORD SetEventMask(DWORD dwEventMask);

Parámetros

dwEventMask
La nueva máscara de eventos para este objeto CRichEditCtrl.

Valor devuelto

Máscara de eventos anterior.

Comentarios

La máscara de eventos especifica qué mensajes de notificación envía el objeto CRichEditCtrl a su ventana primaria.

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

Ejemplo

// Set the event mask so that the parent gets notified when the text
// of the rich edit control changes.
m_myRichEditCtrl.SetEventMask(m_myRichEditCtrl.GetEventMask() |
                              ENM_CHANGE);

CRichEditCtrl::SetModify

Establece o borra la marca modificada para un control de edición.

void SetModify(BOOL bModified = TRUE);

Parámetros

bModified
Un valor TRUE indica que el texto se ha modificado y un valor FALSEindica que no se ha modificado. De manera predeterminada, se establece la marca modificada.

Comentarios

La marca modificada indica si se ha modificado o no el texto del control de edición. Se establece automáticamente cada vez que el usuario modifica el texto. Su valor se puede recuperar con la función miembro GetModify.

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

Ejemplo

Vea el ejemplo de GetModify.

CRichEditCtrl::SetOLECallback

Proporciona a este objeto CRichEditCtrl un objeto IRichEditOleCallback que se va a usar para acceder a los recursos y la información relacionados con OLE.

BOOL SetOLECallback(IRichEditOleCallback* pCallback);

Parámetros

pCallback
Puntero a un objeto IRichEditOleCallback que este objeto CRichEditCtrl usará para obtener información y recursos relacionados con OLE.

Valor devuelto

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

Comentarios

Este objeto CRichEditCtrl llamará a IUnknown::AddRef para incrementar el recuento de uso del objeto COM especificado por pCallback.

Para más información, consulte el mensaje EM_SETOLECALLBACK y la interfaz IRichEditOleCallback en Windows SDK.

CRichEditCtrl::SetOptions

Establece las opciones de este objeto CRichEditCtrl.

void SetOptions(
    WORD wOp,
    DWORD dwFlags);

Parámetros

wOp
Indica el tipo de operación. Uno de los siguientes valores:

  • ECOOP_SET Establezca las opciones en las especificadas por dwFlags.

  • ECOOP_OR Combine las opciones actuales con las especificadas por dwFlags.

  • ECOOP_AND Conserve solo las opciones actuales que también se especifican en dwFlags.

  • ECOOP_XOR Excluya de forma lógica O las opciones actuales con las especificadas por dwFlags.

dwFlags
Opciones de edición enriquecida. Los valores de marca se muestran en la sección Comentarios.

Comentarios

Las opciones pueden ser una combinación de los siguientes valores:

  • ECO_AUTOWORDSELECTION Selección automática de palabras al hacer doble clic.

  • ECO_AUTOVSCROLLDesplaza el texto automáticamente 10 caracteres hacia la derecha cuando el usuario escribe un carácter al final de la línea. Cuando el usuario pulsa la tecla ENTRAR, el control desplaza todo el texto hasta la posición 0.

  • ECO_AUTOHSCROLLDesplaza el texto automáticamente hacia arriba una página cuando el usuario pulsa ENTRAR en la última línea.

  • ECO_NOHIDESEL Niega el comportamiento predeterminado de un control de edición. El comportamiento predeterminado oculta la selección cuando el control pierde el foco de entrada y muestra la selección cuando el control recibe el foco de entrada. Si especifica ECO_NOHIDESEL, el texto seleccionado se invierte, incluso si el control no tiene el foco.

  • ECO_READONLY Impide que el usuario escriba o edite texto en el control de edición.

  • ECO_WANTRETURN Especifica que se inserte un retorno de carro cuando el usuario pulsa la tecla ENTRAR mientras escribe texto en un control de edición enriquecido de varias líneas en un cuadro de diálogo. Si no especifica este estilo, al presionar la tecla ENTRAR se envía un comando a la ventana primaria del control de edición enriquecido, que imita hacer clic en el botón predeterminado de la ventana primaria (por ejemplo, el botón Aceptar de un cuadro de diálogo). Este estilo no tiene ningún efecto en un control de edición de una sola línea.

  • ECO_SAVESEL Conserva la selección cuando el control pierde el foco. De forma predeterminada, se selecciona todo el contenido del control cuando recupera el foco.

  • ECO_VERTICAL Dibuja texto y objetos en una dirección vertical. Disponible solo para idiomas asiáticos.

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

Ejemplo

// Add auto horizontal and vertical scrolling.
m_myRichEditCtrl.SetOptions(ECOOP_OR, ECO_AUTOVSCROLL |
                                          ECO_AUTOHSCROLL);

CRichEditCtrl::SetParaFormat

Recupera los atributos de formato de párrafo para la selección actual de este objeto CRichEditCtrl.

BOOL SetParaFormat(PARAFORMAT& pf);
BOOL SetParaFormat(PARAFORMAT2& pf);

Parámetros

pf
En la primera versión, un puntero a una estructura PARAFORMAT que contiene los atributos de párrafo de caracteres predeterminados.

En la segunda versión, un puntero a una estructura PARAFORMAT2, que es una extensión Rich Edit 2.0 a la estructura PARAFORMAT, que contiene los atributos de formato de caracteres 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 obtener más información, consulte el mensaje EM_SETPARAFORMAT, PARAFORMAT y las estructuras PARAFORMAT2 en Windows SDK.

Ejemplo

PARAFORMAT pf;

// Modify the paragraph format so that the text is centered.
pf.cbSize = sizeof(PARAFORMAT);
pf.dwMask = PFM_ALIGNMENT;
pf.wAlignment = PFA_CENTER;
m_myRichEditCtrl.SetParaFormat(pf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetParaFormat(pf);
ASSERT(pf.dwMask &PFM_ALIGNMENT);
ASSERT(pf.wAlignment == PFA_CENTER);

CRichEditCtrl::SetPunctuation

Establece la puntuación en un control de edición enriquecido.

BOOL SetPunctuation(
    UINT fType,
    PUNCTUATION* lpPunc);

Parámetros

fType
Marca de puntuación. Para ver una lista de valores posibles, consulte el parámetro fType para EM_SETPUNCTUATION en Windows SDK.

lpPunc
Puntero a una estructura PUNCTUATION, como se describe en Windows SDK.

Valor devuelto

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

Comentarios

Esta función miembro solo está disponible para las versiones de idioma asiático del sistema operativo.

CRichEditCtrl::SetReadOnly

Cambia la opción ECO_READONLY por este objeto CRichEditCtrl.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Parámetros

bReadOnly
Indica si este objeto CRichEditCtrl debe ser de solo lectura.

Valor devuelto

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

Comentarios

Para ver una descripción detallada de esta opción, consulte SetOptions. Puede usar esta función para establecer todas las opciones de este objeto CRichEditCtrl.

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

Ejemplo

// Set the rich edit control to be read-only.
m_myRichEditCtrl.SetReadOnly(TRUE);
ASSERT(m_myRichEditCtrl.GetStyle() & ES_READONLY);

CRichEditCtrl::SetRect

Establece el rectángulo de formato de este objeto CRichEditCtrl.

void SetRect(LPCRECT lpRect);

Parámetros

lpRect
CRect o puntero a un RECT que indica los nuevos límites para el rectángulo de formato.

Comentarios

El rectángulo de formato es el rectángulo delimitador del texto. El rectángulo de limitación es independiente del tamaño de la ventana de control de edición enriquecido. Cuando se crea este objeto CRichEditCtrl por primera vez, el rectángulo de formato es el mismo tamaño que el área cliente de la ventana. Use SetRect para hacer que el rectángulo de formato sea mayor o menor que la ventana de edición enriquecida.

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

Ejemplo

CRect r;

m_myRichEditCtrl.GetRect(&r);

// Reduce the formatting rect of the rich edit control by
// 10 pixels on each side.
if ((r.Width() > 20) && (r.Height() > 20))
{
   r.DeflateRect(0, 20);
   m_myRichEditCtrl.SetRect(&r);
}

CRichEditCtrl::SetSel

Establece la selección en este objeto CRichEditCtrl.

void SetSel(
    long nStartChar,
    long nEndChar);

void SetSel(CHARRANGE& cr);

Parámetros

nStartChar
Índice de base cero del primer carácter de la selección.

nEndChar
Índice de base cero del último carácter de la selección.

cr
CHARRANGE estructura que contiene los límites de la selección actual.

Comentarios

Las dos formas de esta función proporcionan formas alternativas de establecer los límites de la selección. A continuación, se describen brevemente estos valores:

  • SetSel( cr ) Este formulario usa la CHARRANGE estructura con sus cpMin miembros y cpMax para establecer los límites.

  • SetSel( nStartChar , nEndChar ) Este formulario usa los parámetros nStartChar y nEndChar para establecer los límites.

El símbolo de inserción se coloca al final de la selección indicada por el mayor de los índices start (cpMin o nStartChar) y end (cpMax o nEndChar). Esta función desplaza el contenido de CRichEditCtrl para que el símbolo de inserción esté visible.

Para seleccionar todo el texto de este objeto CRichEditCtrl, llame a SetSel con un índice inicial de 0 y un índice final de - 1.

Para más información, consulte el mensaje EM_EXSETSEL y la estructura CHARRANGE en Windows SDK.

Ejemplo

Vea el ejemplo de GetSel.

CRichEditCtrl::SetSelectionCharFormat

Establece los atributos de formato de párrafo para el texto en la selección actual de este objeto CRichEditCtrl.

BOOL SetSelectionCharFormat(CHARFORMAT& cf);
BOOL SetSelectionCharFormat(CHARFORMAT2& cf);

Parámetros

cf
En la primera versión, un puntero a una estructura CHARFORMAT que contiene los atributos de formato de caracteres para la selección actual.

En la segunda versión, un puntero a una estructura CHARFORMAT2, que es una extensión Rich Edit 2.0 a la estructura CHARFORMAT, que contiene los atributos de formato de carácter de la selección actual.

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 cf.

Para obtener más información, establezca EM_SETCHARFORMAT y las estructuras CHARFORMAT y CHARFORMAT2 en Windows SDK.

Ejemplo

CHARFORMAT cf;

// Modify the selection format so that the selected text is
// displayed in bold and not striked out.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_BOLD;
m_myRichEditCtrl.SetSelectionCharFormat(cf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetSelectionCharFormat(cf);
ASSERT((cf.dwMask & (CFM_STRIKEOUT | CFM_BOLD)) ==
       (CFM_STRIKEOUT | CFM_BOLD));
ASSERT((cf.dwEffects & (CFE_STRIKEOUT | CFE_BOLD)) == CFE_BOLD);

CRichEditCtrl::SetTargetDevice

Establece el ancho de línea y el dispositivo de destino que se usan para WYSIWYG (lo que ve es lo que obtiene) en este objeto CRichEditCtrl.

BOOL SetTargetDevice(
    HDC hDC,
    long lLineWidth);

BOOL SetTargetDevice(
    CDC& dc,
    long lLineWidth);

Parámetros

hDC
Controle el contexto del dispositivo para el nuevo dispositivo de destino.

lLineWidth
Ancho de línea que se va a usar para dar formato.

dc
CDC para el nuevo dispositivo de destino.

Valor devuelto

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

Comentarios

Si esta función se ejecuta correctamente, el control de edición enriquecido posee el contexto del dispositivo pasado como parámetro. En ese caso, la función de llamada no debe destruir el contexto del dispositivo.

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

Ejemplo

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

   // Get line width information from the printer.
   long lLineWidth = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALWIDTH),
                              1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSX));

   // Set the printer as the target device.
   m_myRichEditCtrl.SetTargetDevice(*pMyPrinterDC, lLineWidth);

   pMyPrinterDC->DeleteDC();
}

CRichEditCtrl::SetTextMode

Establece el modo de texto o el nivel de deshacer y rehacer para un control de edición enriquecido.

BOOL SetTextMode(UINT fMode);

Parámetros

fMode
Especifica la nueva configuración para el modo de texto del control y los parámetros de nivel de deshacer. Para ver una lista de los valores posibles, consulte el parámetro de modo para EM_SETTEXTMODE en Windows SDK.

Valor devuelto

Es distinto de cero si es correcto. En caso contrario, es cero.

Comentarios

Para obtener una descripción de los modos de texto, consulte EM_SETTEXTMODE en Windows SDK.

Esta función miembro produce un error si el control contiene texto. Para asegurarse de que el control está vacío, envíe un mensaje WM_SETTEXT con una cadena vacía.

CRichEditCtrl::SetUndoLimit

Establece el número máximo de acciones que se pueden almacenar en la cola de deshacer.

UINT SetUndoLimit(UINT nLimit);

Parámetros

nLimit
Especifica el número máximo de acciones que se pueden almacenar en la cola de deshacer. Establezca en cero para deshabilitar Deshacer.

Valor devuelto

Nuevo número máximo de acciones de deshacer para el control de edición enriquecido.

Comentarios

De forma predeterminada, el número máximo de acciones de la cola de deshacer es 100. Si aumenta este número, debe haber suficiente memoria disponible para acomodar el nuevo número. Para mejorar el rendimiento, establezca el límite en el valor más pequeño posible.

CRichEditCtrl::SetWordCharFormat

Establece los atributos de formato de caracteres para la palabra seleccionada actualmente en este objeto CRichEditCtrl.

BOOL SetWordCharFormat(CHARFORMAT& cf);
BOOL SetWordCharFormat(CHARFORMAT2& cf);

Parámetros

cf
En la primera versión, un puntero a una estructura CHARFORMAT que contiene los atributos de formato de caracteres para la palabra seleccionada actualmente.

En la segunda versión, un puntero a una estructura CHARFORMAT2, que es una extensión Rich Edit 2.0 a la estructura CHARFORMAT, que contiene los atributos de formato de carácter de la palabra seleccionada actualmente.

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 cf .

Para obtener más información, consulte el mensaje EM_SETCHARFORMAT, CHARFORMAT y las estructuras CHARFORMAT2 en Windows SDK.

Ejemplo

CHARFORMAT cf;

// Modify the word format so that the selected word is
// displayed in bold and not striked out.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_BOLD;
m_myRichEditCtrl.SetWordCharFormat(cf);

CRichEditCtrl::SetWordWrapMode

Establece las opciones de ajuste de palabras y separación de palabras para el control de edición enriquecido.

UINT SetWordWrapMode(UINT uFlags) const;

Parámetros

uFlags
Las opciones que se van a establecer para el ajuste de palabras y la separación de palabras. Para ver una lista de valores posibles, consulte EM_SETWORDWRAPMODE en Windows SDK.

Valor devuelto

Opciones actuales de ajuste de palabras y separación de palabras.

Comentarios

Este mensaje solo está disponible en versiones de idioma asiático del sistema operativo.

CRichEditCtrl::StopGroupTyping

Impide que el control recopile acciones de escritura adicionales en la acción de deshacer actual.

void StopGroupTyping();

Comentarios

El control almacena la siguiente acción de escritura, si existe, en una nueva acción de la cola de deshacer.

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

CRichEditCtrl::StreamIn

Reemplaza el texto de este objeto CRichEditCtrl por texto del flujo de entrada especificado.

long StreamIn(
    int nFormat,
    EDITSTREAM& es);

Parámetros

nFormat
Marcas que especifican los formatos de datos de entrada. Para obtener más información, consulte la sección Comentarios.

es
EDITSTREAM estructura que especifica el flujo de entrada. Vea la sección Comentarios para obtener más información.

Valor devuelto

Número de caracteres leídos del flujo de entrada.

Comentarios

El valor de nFormat debe ser uno de los siguientes:

  • SF_TEXT Indica texto de solo lectura.

  • SF_RTF Indica texto legible y formato.

Cualquiera de estos valores se puede combinar con SFF_SELECTION. Si SFF_SELECTION se especifica , StreamIn reemplaza la selección actual por el contenido del flujo de entrada. Si no se especifica, StreamIn reemplaza todo el contenido de este objeto CRichEditCtrl.

En el EDITSTREAM parámetro es, se especifica una función de devolución de llamada que rellena un búfer con texto. Esta función de devolución de llamada se llama repetidamente hasta que se agota el flujo de entrada.

Para más información, consulte el mensaje EM_STREAMIN y la estructura EDITSTREAM en Windows SDK.

Ejemplo

// My callback procedure that reads the rich edit control contents
// from a file.
static DWORD CALLBACK 
MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
   CFile* pFile = (CFile*) dwCookie;

   *pcb = pFile->Read(pbBuff, cb);

   return 0;
}

 

// The example code.

// The file from which to load the contents of the rich edit control.
CFile cFile(TEXT("My_RichEdit_InFile.rtf"), CFile::modeRead);
EDITSTREAM es;

es.dwCookie = (DWORD)&cFile;
es.pfnCallback = MyStreamInCallback;
m_myRichEditCtrl.StreamIn(SF_RTF, es);

CRichEditCtrl::StreamOut

Escribe el contenido de este objeto CRichEditCtrl en el flujo de salida especificado.

long StreamOut(
    int nFormat,
    EDITSTREAM& es);

Parámetros

nFormat
Marcas que especifican los formatos de datos de salida. Para obtener más información, consulte la sección Comentarios.

es
EDITSTREAM estructura que especifica el flujo de entrada. Vea la sección Comentarios para obtener más información.

Valor devuelto

Número de caracteres escritos en el flujo de salida.

Comentarios

El valor de nFormat debe ser uno de los siguientes:

  • SF_TEXT Indica texto de solo escritura.

  • SF_RTF Indica texto de escritura y formato.

  • SF_RTFNOOBJS Indica texto de escritura y formato, reemplazando los elementos OLE por espacios.

  • SF_TEXTIZED Indica la escritura de texto y el formato, con representaciones textuales de elementos OLE.

Cualquiera de estos valores se puede combinar con SFF_SELECTION. Si SFF_SELECTION se especifica , StreamOut escribe la selección actual en el flujo de salida. Si no se especifica, StreamOut sobrescribe todo el contenido de este objeto CRichEditCtrl.

En el parámetro EDITSTREAM es, se especifica una función de devolución de llamada que rellena un búfer con texto. Esta función de devolución de llamada se llama repetidamente hasta que se agota el flujo de salida.

Para más información, consulte el mensaje EM_STREAMOUT y la estructura EDITSTREAM en Windows SDK.

Ejemplo

// My callback procedure that writes the rich edit control contents
// to a file.
static DWORD CALLBACK 
MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
   CFile* pFile = (CFile*) dwCookie;

   pFile->Write(pbBuff, cb);
   *pcb = cb;

   return 0;
}

 

// The example code.

// The file to store the contents of the rich edit control.
CFile cFile(TEXT("My_RichEdit_OutFile.rtf"),
            CFile::modeCreate | CFile::modeWrite);
EDITSTREAM es;

es.dwCookie = (DWORD)&cFile;
es.pfnCallback = MyStreamOutCallback;
m_myRichEditCtrl.StreamOut(SF_RTF, es);

CRichEditCtrl::Undo

Deshace la última operación del control de edición enriquecido.

BOOL Undo();

Valor devuelto

Distinto de cero si la operación de deshacer es correcta; de lo contrario, 0.

Comentarios

También se puede deshacer una operación de deshacer. Por ejemplo, puede restaurar texto eliminado con la primera llamada a Undo. Siempre que no haya ninguna operación de edición que intervenga, puede quitar el texto de nuevo con una segunda llamada a Undo.

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

Ejemplo

Vea el ejemplo de CanUndo.

Consulte también

WORDPAD de ejemplo de MFC
CWnd (clase)
Gráfico de jerarquías
CEdit (clase)
CRichEditView (clase)