Classe CRichEditCtrl

Fornece a funcionalidade do controle de edição avançada.

Sintaxe

class CRichEditCtrl : public CWnd

Membros

Construtores públicos

Nome Descrição
CRichEditCtrl::CRichEditCtrl Constrói um objeto CRichEditCtrl.

Métodos públicos

Nome Descrição
CRichEditCtrl::CanPaste Determina se o conteúdo da área de transferência pode ser colado nesse controle de edição avançada.
CRichEditCtrl::CanRedo Determina se há alguma ação na fila de refazer do controle.
CRichEditCtrl::CanUndo Determina se uma operação de edição pode ser desfeita.
CRichEditCtrl::CharFromPos Recupera informações sobre o caractere mais próximo de um ponto especificado na área do cliente de um controle de edição.
CRichEditCtrl::Clear Limpa a seleção atual.
CRichEditCtrl::Copy Copia a seleção atual na área de transferência.
CRichEditCtrl::Create Cria o controle de edição avançada do Windows e o associa a esse objeto CRichEditCtrl.
CRichEditCtrl::CreateEx Cria o controle de edição avançada do Windows com os estilos estendidos do Windows especificados e o associa a esse objeto CRichEditCtrl.
CRichEditCtrl::Cut Corta a seleção atual na área de transferência.
CRichEditCtrl::DisplayBand Exibe uma parte do conteúdo deste objeto CRichEditCtrl.
CRichEditCtrl::EmptyUndoBuffer Redefine (limpa) o sinalizador de desfazer desse objeto CRichEditCtrl.
CRichEditCtrl::FindText Localiza o texto dentro desse objeto CRichEditCtrl.
CRichEditCtrl::FindWordBreak Localiza a próxima interrupção de palavra antes ou depois da posição de caractere especificada ou recupera informações sobre o caractere nessa posição.
CRichEditCtrl::FormatRange Formata um intervalo de texto para o dispositivo de saída de destino.
CRichEditCtrl::GetCharPos Determina o local de um determinado caractere dentro desse objeto CRichEditCtrl.
CRichEditCtrl::GetDefaultCharFormat Recupera os atributos de formatação de caractere padrão atuais neste objeto CRichEditCtrl.
CRichEditCtrl::GetEventMask Recupera a máscara de evento para este objeto CRichEditCtrl.
CRichEditCtrl::GetFirstVisibleLine Determina a linha mais visível neste objeto CRichEditCtrl.
CRichEditCtrl::GetIRichEditOle Recupera um ponteiro para a interface IRichEditOle desse controle de edição avançada.
CRichEditCtrl::GetLimitText Obtém o limite da quantidade de texto que um usuário pode inserir nesse objeto CRichEditCtrl.
CRichEditCtrl::GetLine Recupera uma linha de texto desse objeto CRichEditCtrl.
CRichEditCtrl::GetLineCount Recupera o número de linhas neste objeto CRichEditCtrl.
CRichEditCtrl::GetModify Determina se o conteúdo desse objeto CRichEditCtrl foi alterado desde o último salvamento.
CRichEditCtrl::GetOptions Recupera as opções de controle de edição avançada.
CRichEditCtrl::GetParaFormat Recupera os atributos de formatação do parágrafo na seleção atual neste objeto CRichEditCtrl.
CRichEditCtrl::GetPunctuation Recupera os caracteres de pontuação atuais para o controle de edição avançada. Esta mensagem está disponível somente nas versões em idioma asiático do sistema operacional.
CRichEditCtrl::GetRect Recupera o retângulo de formatação deste objeto CRichEditCtrl.
CRichEditCtrl::GetRedoName Recupera o tipo da próxima ação, se houver, na fila de refazer do controle.
CRichEditCtrl::GetSel Obtém as posições inicial e final da seleção atual neste objeto CRichEditCtrl.
CRichEditCtrl::GetSelectionCharFormat Recupera os atributos de formatação de caractere na seleção atual neste objeto CRichEditCtrl.
CRichEditCtrl::GetSelectionType Recupera o tipo de conteúdo na seleção atual neste objeto CRichEditCtrl.
CRichEditCtrl::GetSelText Obtém o texto da seleção atual neste objeto CRichEditCtrl
CRichEditCtrl::GetTextLength Recupera o comprimento do texto, em caracteres, neste objeto CRichEditCtrl. Não inclui o caractere nulo de terminação.
CRichEditCtrl::GetTextLengthEx Recupera o número de caracteres ou bytes na exibição de edição avançada. Aceita uma lista de sinalizadores para indicar o método de determinação do comprimento do texto em um controle de edição avançada
CRichEditCtrl::GetTextMode Recupera o modo de texto atual e o nível para desfazer um controle de edição avançada.
CRichEditCtrl::GetTextRange Recupera o intervalo de texto especificado.
CRichEditCtrl::GetUndoName Recupera o tipo da próxima ação de desfazer, se houver.
CRichEditCtrl::GetWordWrapMode Recupera as opções atuais de quebra automática de linha e separação de palavras para o controle de edição avançada. Esta mensagem está disponível somente nas versões em idioma asiático do sistema operacional.
CRichEditCtrl::HideSelection Exibe ou oculta a seleção atual.
CRichEditCtrl::LimitText Limita a quantidade de texto que um usuário pode inserir no objeto CRichEditCtrl.
CRichEditCtrl::LineFromChar Determina qual linha contém o caractere determinado.
CRichEditCtrl::LineIndex Recupera o índice de caracteres de uma determinada linha neste objeto CRichEditCtrl.
CRichEditCtrl::LineLength Recupera o comprimento de uma determinada linha neste objeto CRichEditCtrl.
CRichEditCtrl::LineScroll Rola o texto neste objeto CRichEditCtrl.
CRichEditCtrl::Paste Insere o conteúdo da área de transferência no controle de edição avançada.
CRichEditCtrl::PasteSpecial Insere o conteúdo da área de transferência nesse controle de edição avançada no formato de dados especificado.
CRichEditCtrl::PosFromChar Recupera as coordenadas da área do cliente de um caractere especificado em um controle de edição.
CRichEditCtrl::Redo Refaz a próxima ação na fila de restauração do controle.
CRichEditCtrl::ReplaceSel Substitui a seleção atual neste objeto CRichEditCtrl pelo texto especificado.
CRichEditCtrl::RequestResize Força esse objeto CRichEditCtrl a enviar notificações de redimensionamento de solicitação.
CRichEditCtrl::SetAutoURLDetect Indica se a detecção automática de URL está ativa em um controle de edição avançada.
CRichEditCtrl::SetBackgroundColor Define a cor da tela de fundo neste objeto CRichEditCtrl.
CRichEditCtrl::SetDefaultCharFormat Define os atributos de formatação de caractere padrão atuais neste objeto CRichEditCtrl.
CRichEditCtrl::SetEventMask Define a máscara de evento para este objeto CRichEditCtrl.
CRichEditCtrl::SetModify Define ou limpa o sinalizador de modificação neste objeto CRichEditCtrl.
CRichEditCtrl::SetOLECallback Define o objeto COM IRichEditOleCallback para esse controle de edição avançada.
CRichEditCtrl::SetOptions Define as opções para este objeto CRichEditCtrl.
CRichEditCtrl::SetParaFormat Define os atributos de formatação do parágrafo na seleção atual neste objeto CRichEditCtrl.
CRichEditCtrl::SetPunctuation Define os caracteres de pontuação para um controle de edição avançada. Esta mensagem está disponível somente nas versões em idioma asiático do sistema operacional.
CRichEditCtrl::SetReadOnly Define a opção somente leitura para este objeto CRichEditCtrl.
CRichEditCtrl::SetRect Define o retângulo de formatação deste objeto CRichEditCtrl.
CRichEditCtrl::SetSel Define a seleção neste objeto CRichEditCtrl.
CRichEditCtrl::SetSelectionCharFormat Define os atributos de formatação de caractere na seleção atual neste objeto CRichEditCtrl.
CRichEditCtrl::SetTargetDevice Define o dispositivo de saída de destino para este objeto CRichEditCtrl.
CRichEditCtrl::SetTextMode Define o modo de texto ou o nível de desfazer de um controle de edição avançada. A mensagem falhará se o controle contiver texto.
CRichEditCtrl::SetUndoLimit Define o número máximo de ações que podem ser armazenadas na fila de desfazer.
CRichEditCtrl::SetWordCharFormat Define os atributos de formatação de caractere na palavra atual neste objeto CRichEditCtrl.
CRichEditCtrl::SetWordWrapMode Define as opções de quebra automática de linha e separação de palavras para o controle de edição avançada. Esta mensagem está disponível somente nas versões em idioma asiático do sistema operacional.
CRichEditCtrl::StopGroupTyping Impede que o controle colete ações de digitação adicionais na ação de desfazer atual. O controle armazena a próxima ação de digitação, se houver, em uma nova ação na fila de desfazer.
CRichEditCtrl::StreamIn Insere texto de um fluxo de entrada nesse objeto CRichEditCtrl.
CRichEditCtrl::StreamOut Armazena texto desse objeto CRichEditCtrl em um fluxo de saída.
CRichEditCtrl::Undo Inverte a última operação de edição.

Comentários

Um "controle de edição avançada" é uma janela na qual o usuário pode inserir e editar textos. O texto pode ser atribuído a formatação de caracteres e parágrafos e pode incluir objetos OLE incorporados. Os controles de edição avançada fornecem uma interface de programação para formatar texto. No entanto, um aplicativo deve implementar todos os componentes de interface do usuário necessários para disponibilizar operações de formatação para o usuário.

Esse controle comum do Windows (e, portanto, a classe CRichEditCtrl) está disponível apenas para programas em execução no Windows 95/98 e Windows NT versões 3.51 e posteriores. A classe CRichEditCtrl dá suporte às versões 2.0 e 3.0 do controle de edição avançada do SDK do Windows.

Cuidado

Se você estiver usando um controle de edição avançada em uma caixa de diálogo (independentemente de seu aplicativo ser baseado em SDI, MDI ou caixa de diálogo), você deverá chamar AfxInitRichEdit uma vez antes que a caixa de diálogo seja exibida. Um local típico para chamar essa função está na função membro InitInstance do programa. Você não precisa chamá-lo toda vez que exibir a caixa de diálogo, apenas na primeira vez. Você não precisa chamar AfxInitRichEdit se estiver trabalhando com CRichEditView.

Para obter mais informações sobre como usar CRichEditCtrl, confira:

Para obter um exemplo de como usar um controle de edição avançada em um aplicativo MFC, consulte o aplicativo de exemplo WORDPAD.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CRichEditCtrl

Requisitos

Cabeçalhoafxcmn.h:

CRichEditCtrl::CanPaste

Determina se o controle de edição avançada pode colar o formato de área de transferência especificado.

BOOL CanPaste(UINT nFormat = 0) const;

Parâmetros

nFormat
O formato de dados da área de transferência a ser consultada. Esse parâmetro pode ser um dos formatos predefinidos da área de transferência ou o valor retornado por RegisterClipboardFormat.

Valor de retorno

Diferente de zero se o formato da área de transferência puder ser colado; caso contrário, 0.

Comentários

Se nFormat for 0, CanPaste tentará qualquer formato atualmente na área de transferência.

Para obter mais informações, confira a mensagem EM_CANPASTE e a função RegisterClipboardFormat no SDK do Windows.

Exemplo

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

CRichEditCtrl::CanRedo

Determina se a fila de refazer contém ações.

BOOL CanRedo() const;

Valor de retorno

Diferente de zero se a fila de refazer contiver ações, caso contrário, 0.

Comentários

Para descobrir o nome da operação na fila de refazer, chame CRichEditCtrl::GetRedoName. Para refazer a operação de desfazer mais recente, chame Redo.

Para obter mais informações, consulte EM_CANREDO no SDK do Windows.

CRichEditCtrl::CanUndo

Determina se a última operação de edição pode ser desfeita.

BOOL CanUndo() const;

Valor de retorno

Diferente de zero se a última operação de edição puder ser desfeita por uma chamada para a função membro Undo; 0 se não puder ser desfeita.

Comentários

Para obter mais informações, consulte EM_CANUNDO no SDK do Windows.

Exemplo

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

CRichEditCtrl::CharFromPos

Recupera as informações sobre o caractere no ponto especificado pelo parâmetro pt.

int CharFromPos(CPoint pt) const;

Parâmetros

pt
Um objeto CPoint que contém as coordenadas do ponto especificado.

Valor de retorno

O índice de caracteres baseado em zero do caractere mais próximo do ponto especificado. Se o ponto especificado estiver além do último caractere no controle, o valor retornado indicará o último caractere no controle.

Comentários

Essa função membro funciona com um controle de edição avançado. Para obter as informações de um controle de edição, chame CEdit::CharFromPos.

Para obter mais informações, consulte EM_CHARFROMPOS no SDK do Windows.

CRichEditCtrl::Clear

Exclui (limpa) a seleção atual (se houver) no controle de edição avançado.

void Clear();

Comentários

A exclusão executada por Clear pode ser desfeita chamando a função membro Undo.

Para excluir a seleção atual e colocar o conteúdo excluído na área de transferência, chame a função membro Cut.

Para obter mais informações, consulte WM_CLEAR no SDK do Windows.

Exemplo

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

CRichEditCtrl::Copy

Copia a seleção atual (se houver) no controle de edição avançado para a área de transferência.

void Copy();

Comentários

Para obter mais informações, consulte WM_COPY no SDK do Windows.

Exemplo

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

CRichEditCtrl::Create

Cria o controle de edição avançada do Windows e o associa a esse objeto CRichEditCtrl.

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

Parâmetros

dwStyle
Especifica o estilo do controle de edição. Aplique uma combinação dos estilos de janela listados na seção Comentários abaixo e edite os estilos de controle, descritos no SDK do Windows.

rect
Especifica o tamanho e a posição do controle de edição. Pode ser um objeto CRect ou uma estrutura RECT.

pParentWnd
Especifica a janela pai do controle de edição (geralmente CDialog). Não deve ser NULL.

nID
Especifica a ID do controle de edição.

Valor de retorno

Não zero se a inicialização for bem-sucedida; caso contrário, 0.

Comentários

Um objeto CRichEditCtrl é construído em duas etapas. Primeiro chame o construtorCRichEditCtrl, então chame Create, o que cria o controle de edição do Windows e o anexa ao objeto CRichEditCtrl.

Ao criar um controle de edição avançado com essa função, primeiro você deve carregar a biblioteca de controles comuns necessária. Para carregar a biblioteca, chame a função global AfxInitRichEdit, que, por sua vez, inicializa a biblioteca de controles comuns. Você precisa chamar AfxInitRichEdit apenas uma vez em seu processo.

Quando Create é executado, o Windows envia as mensagens WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE e WM_GETMINMAXINFO para o controle de edição.

Essas mensagens são tratadas por padrão pelas funções de membro OnNcCreate, OnNcCalcSize, OnCreate e OnGetMinMaxInfo na classe base CWnd. Para estender o tratamento de mensagens padrão, derive uma classe de CRichEditCtrl, adicione um mapa de mensagem à nova classe e substitua as funções de membro do manipulador de mensagens acima. Substitua OnCreate, por exemplo, para executar a inicialização necessária para a nova classe.

Aplique os seguintes estilos de janela a um controle de edição.

  • WS_CHILD Sempre.

  • WS_VISIBLE Geralmente.

  • WS_DISABLED Raramente.

  • WS_GROUP Para grupar controles.

  • WS_TABSTOP Para incluir o controle de edição na ordem de tabulação.

Para obter mais informações sobre estilos de janela, consulte CreateWindow no SDK do Windows.

Exemplo

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

CRichEditCtrl::CreateEx

Cria um controle (uma janela filho) e o associa ao objeto CRichEditCtrl.

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

Parâmetros

dwExStyle
Especifica o estilo estendido do controle que está sendo criado. Para obter uma lista de estilos estendidos do Windows, consulte o parâmetro dwExStyle para CreateWindowEx no SDK do Windows.

dwStyle
Especifica o estilo do controle de edição. Aplique uma combinação dos estilos de janela listados na seção Comentários de Create e edite os estilos de controle, descritos no SDK do Windows.

rect
Uma referência a uma estrutura RECT que descreve o tamanho e a posição da janela a ser criada, nas coordenadas de cliente de pParentWnd.

pParentWnd
Um ponteiro para a janela que é pai do controle.

nID
A ID da janela filho do controle.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Use CreateEx, em vez de Create, para aplicar estilos estendidos do Windows, especificados pelo prefácio WS_EX_ de estilos estendidos do Windows.

CRichEditCtrl::CRichEditCtrl

Constrói um objeto CRichEditCtrl.

CRichEditCtrl();

Comentários

Use Create para construir o controle de edição avançada do Windows.

Exemplo

// Declare a local CRichEditCtrl object.
CRichEditCtrl myRichEditCtrl;

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

CRichEditCtrl::Cut

Exclui (corta) a seleção atual (se houver) no controle de edição avançada e copia o texto excluído na área de transferência.

void Cut();

Comentários

A exclusão executada por Cut pode ser desfeita chamando a função membro Undo.

Para excluir a seleção atual sem colocar o texto excluído na área de transferência, chame a função de membro Clear.

Para obter mais informações, consulte WM_CUT no SDK do Windows.

Exemplo

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

CRichEditCtrl::DisplayBand

Exibe uma parte do conteúdo do controle de edição avançada (texto e itens OLE), conforme formatado anteriormente por FormatRange.

BOOL DisplayBand(LPRECT pDisplayRect);

Parâmetros

pDisplayRect
Ponteiro para um objeto RECT ou CRect que especifica a área do dispositivo para exibir o texto.

Valor de retorno

Diferente de zero se a exibição do texto formatado for bem-sucedida, caso contrário, 0.

Comentários

Os itens de texto e OLE são recortados na área especificada pelo ponteiro pDisplayRect.

Para obter mais informações, consulte EM_DISPLAYBAND no SDK do Windows.

Exemplo

Confira o exemplo de CRichEditCtrl::FormatRange.

CRichEditCtrl::EmptyUndoBuffer

Redefine (limpa) o sinalizador de desfazer desse controle de edição avançada.

void EmptyUndoBuffer();

Comentários

Agora, o controle não poderá desfazer a última operação de edição. O sinalizador de desfazer é definido sempre que uma operação dentro do controle de edição avançada pode ser desfeita.

O sinalizador de desfazer é desmarcado automaticamente sempre que você chama a função membro CWndSetWindowText.

Para obter mais informações, consulte EM_EMPTYUNDOBUFFER no SDK do Windows.

Exemplo

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

CRichEditCtrl::FindText

Localiza o texto dentro do controle de edição avançada.

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

Parâmetros

dwFlags
Para obter uma lista de valores possíveis, consulte wParam no EM_FINDTEXTEXT no SDK do Windows.

pFindText
Ponteiro para a estrutura FINDTEXTEX que fornece os parâmetros da pesquisa e retorna o intervalo em que a correspondência foi encontrada.

Valor de retorno

Posição de caractere baseada em zero da próxima correspondência; - 1 se não houver mais correspondências.

Comentários

Você pode pesquisar para cima ou para baixo definindo os parâmetros de intervalo adequados na estrutura CHARRANGE dentro da estrutura FINDTEXTEX.

Para mais informações, confira a mensagem EM_FINDTEXTEX e a estrutura FINDTEXTEX no SDK do Windows.

Exemplo

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

Localiza a próxima interrupção de palavra antes ou depois da posição especificada por nStart.

DWORD FindWordBreak(
    UINT nCode,
    DWORD nStart) const;

Parâmetros

nCode
Indica a ação a ser executada. Para obter uma lista de valores possíveis, consulte a descrição do parâmetro code no EM_FINDWORDBREAK no SDK do Windows.

nStart
A posição do caractere baseada em zero da qual iniciar.

Valor de retorno

Com base no parâmetro nCode. Para obter mais informações, consulte EM_FINDWORDBREAK no SDK do Windows.

Comentários

Você pode usar essa função membro para recuperar informações sobre um caractere em uma determinada posição.

CRichEditCtrl::FormatRange

Formata um intervalo de texto em um controle de edição avançada para um dispositivo específico.

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

Parâmetros

pfr
Ponteiro para a estrutura FORMATRANGE que contém informações sobre o dispositivo de saída. NULL indica que as informações armazenadas em cache no controle de edição avançada podem ser liberadas.

bDisplay
Indica se um texto deve ser renderizado. Se FALSE, o texto será apenas medido.

Valor de retorno

O índice do último caractere que se ajusta na região mais um.

Comentários

Normalmente, essa chamada é seguida por uma chamada para DisplayBand.

Para mais informações, confira a mensagem EM_FORMATRANGE e a estrutura FORMATRANGE no SDK do Windows.

Exemplo

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

Obtém a posição (canto superior esquerdo) de um determinado caractere dentro desse objeto CRichEditCtrl.

CPoint GetCharPos(long lChar) const;

Parâmetros

lChar
Índice com base em zero do caractere.

Valor de retorno

O local do canto superior esquerdo do caractere especificado por lChar.

Comentários

O caractere é especificado fornecendo o valor de índice baseado em zero. Se lChar for maior que o índice do último caractere neste objeto CRichEditCtrl, o valor retornado especifica as coordenadas da posição do caractere logo após o último caractere neste objeto CRichEditCtrl.

Para obter mais informações, consulte EM_POSFROMCHAR no SDK do Windows.

CRichEditCtrl::GetDefaultCharFormat

Obtém os atributos de formatação de caractere padrão desse objeto CRichEditCtrl.

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

Parâmetros

cf
Na primeira versão, um ponteiro para uma estrutura CHARFORMAT que contém os atributos de formatação de caractere padrão.

Na segunda versão, um ponteiro para uma estrutura CHARFORMAT2, que é uma extensão Rich Edit 2.0 para a estrutura CHARFORMAT, mantendo os atributos de formatação de caractere padrão.

Valor de retorno

O membro de dados dwMask de cf. Ele especificou os atributos de formatação de caractere padrão.

Comentários

Para obter mais informações, consulte a mensagem EM_GETCHARFORMAT e as CHARFORMAT estruturas CHARFORMAT2 no SDK do Windows.

Exemplo

Confira o exemplo de SetDefaultCharFormat.

CRichEditCtrl::GetEventMask

Obtém a máscara de evento para este objeto CRichEditCtrl.

long GetEventMask() const;

Valor de retorno

A máscara de evento para este objeto CRichEditCtrl.

Comentários

A máscara de evento especifica quais mensagens de notificação o objeto CRichEditCtrl envia para a janela pai.

Para obter mais informações, consulte EM_GETEVENTMASK no SDK do Windows.

Exemplo

Confira o exemplo de CRichEditCtrl::SetEventMask.

CRichEditCtrl::GetFirstVisibleLine

Determina a linha mais visível neste objeto CRichEditCtrl.

int GetFirstVisibleLine() const;

Valor de retorno

Índice baseado em zero da linha visível mais alta neste objeto CRichEditCtrl.

Comentários

Para obter mais informações, consulte EM_GETFIRSTVISIBLELINE no SDK do Windows.

Exemplo

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

Acessa a interface IRichEditOle desse objeto CRichEditCtrl.

IRichEditOle* GetIRichEditOle() const;

Valor de retorno

Ponteiro para a interface IRichEditOle que pode ser usada para acessar a funcionalidade OLE deste objeto CRichEditCtrl; NULL se a interface não estiver acessível.

Comentários

Use essa interface para acessar a funcionalidade OLE deste objeto CRichEditCtrl.

Para obter mais informações, consulte a mensagem EM_GETOLEINTERFACE e a interface IRichEditOle no SDK do Windows.

CRichEditCtrl::GetLimitText

Obtém o limite de texto para este objeto CRichEditCtrl.

long GetLimitText() const;

Valor de retorno

O limite de texto atual, em bytes, para esse objeto CRichEditCtrl.

Comentários

O limite de texto é a quantidade máxima de texto, em bytes, que o controle de edição avançada pode aceitar.

Para obter mais informações, consulte EM_GETLIMITTEXT no SDK do Windows.

Exemplo

// 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 uma linha de texto desse objeto CRichEditCtrl.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

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

Parâmetros

nIndex
Índice de base zero da linha a ser recuperado.

lpszBuffer
Aponta para o buffer para receber o texto. A primeira palavra do buffer deve especificar o número máximo de bytes que podem ser copiados no buffer.

nMaxLength
Número máximo de caracteres que podem ser copiados para lpszBuffer. O segundo formulário de GetLine insere esse valor na primeira palavra do buffer especificada por lpszBuffer.

Valor de retorno

O número de caracteres copiados em lpszBuffer.

Comentários

A linha copiada não contém um caractere de terminação nulo.

Observação

Como a primeira palavra do buffer armazena o número de caracteres a serem copiados, verifique se o buffer tem pelo menos 4 bytes de comprimento.

Para obter mais informações, consulte EM_GETLINE no SDK do Windows.

Exemplo

Confira o exemplo de GetLineCount.

CRichEditCtrl::GetLineCount

Recupera o número de linhas no objeto CRichEditCtrl.

int GetLineCount() const;

Valor de retorno

O número de linhas neste objeto CRichEditCtrl.

Comentários

Para obter mais informações, consulte EM_GETLINECOUNT no SDK do Windows.

Exemplo

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 se o conteúdo desse objeto CRichEditCtrl foi modificado.

BOOL GetModify() const;

Valor de retorno

Diferente de zero se o texto neste objeto CRichEditCtrl tiver sido modificado; caso contrário, 0.

Comentários

O Windows mantém um sinalizador interno indicando se o conteúdo do controle de edição avançada foi alterado. Esse sinalizador é desmarcado quando o controle de edição é criado pela primeira vez e também pode ser desmarcado chamando a função membro SetModify.

Para obter mais informações, consulte EM_GETMODIFY no SDK do Windows.

Exemplo

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

CRichEditCtrl::GetOptions

Recupera as opções atualmente definidas para o controle de edição avançada.

UINT GetOptions() const;

Valor de retorno

Uma combinação dos valores atuais do sinalizador de opção. Para obter uma lista desses valores, consulte o parâmetro fOptions na mensagem EM_SETOPTIONS, conforme descrito no SDK do Windows.

CRichEditCtrl::GetParaFormat

Obtém os atributos de formatação do parágrafo da seleção atual.

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

Parâmetros

pf
Na primeira versão, um ponteiro para uma estrutura PARAFORMAT para manter os atributos de formatação de parágrafo da seleção atual.

Na segunda versão, um ponteiro para uma estrutura PARAFORMAT2, que é uma extensão Rich Edit 2.0 para a estrutura PARAFORMAT, mantendo os atributos de formatação de caractere padrão.

Valor de retorno

O membro de dados dwMask de pf. Ele especifica os atributos de formatação de parágrafo consistentes em toda a seleção atual.

Comentários

Se mais de um parágrafo for selecionado, pf receberá os atributos do primeiro parágrafo selecionado. O valor retornado especifica quais atributos são consistentes durante toda a seleção.

Para obter mais informações, consulte a mensagem EM_GETPARAFORMAT e as PARAFORMAT estruturas PARAFORMAT2 no SDK do Windows.

Exemplo

Confira o exemplo de CRichEditCtrl::SetParaFormat.

CRichEditCtrl::GetPunctuation

Obtém os caracteres de pontuação atuais em um controle de edição avançada.

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

Parâmetros

fType
O sinalizador de tipo de pontuação, conforme descrito no parâmetro fType do EM_GETPUNCTUATION no SDK do Windows.

lpPunc
Um ponteiro para uma estrutura PUNCTUATION, conforme descrito no SDK do Windows.

Valor de retorno

Diferente de zero se a operação for bem-sucedida; caso contrário, 0.

Comentários

Essa função membro está disponível apenas nas versões em idioma asiático do sistema operacional.

CRichEditCtrl::GetRect

Recupera o retângulo de formatação deste objeto CRichEditCtrl.

void GetRect(LPRECT lpRect) const;

Parâmetros

lpRect
CRect ou ponteiro para um RECT para receber o retângulo de formatação deste objeto CRichEditCtrl.

Comentários

O retângulo de formatação é o retângulo delimitador do texto. Esse valor é independente do tamanho do objeto CRichEditCtrl.

Para obter mais informações, consulte EM_GETRECT no SDK do Windows.

Exemplo

Confira o exemplo de LimitText.

CRichEditCtrl::GetRedoName

Recupera o tipo da próxima ação disponível na fila de refazer, se houver.

UNDONAMEID GetRedoName() const;

Valor de retorno

Se tiver êxito, GetRedoName retornará o tipo de enumeração UNDONAMEID que indica o tipo da próxima ação na fila de refazer do controle. Se a fila de refazer estiver vazia ou se a ação de refazer na fila for de um tipo desconhecido, GetRedoName retornará 0.

Comentários

Os tipos de ações que podem ser desfeitas ou refeitas incluem operações de digitação, exclusão, arrastar e soltar, recortar e colar. Essas informações podem ser úteis para aplicativos que fornecem uma interface de usuário estendida para operações desfazer e refazer, como uma caixa de listagem suspensa de ações que podem ser refeitas.

CRichEditCtrl::GetSel

Recupera os limites da seleção atual neste objeto CRichEditCtrl.

void GetSel(CHARRANGE& cr) const;

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

Parâmetros

cr
Referência a uma estrutura CHARRANGE para receber os limites da seleção atual.

nStartChar
Índice baseado em zero do primeiro caractere na seleção atual.

nEndChar
Índice baseado em zero do último caractere na seleção atual.

Comentários

As duas formas dessa função fornecem maneiras alternativas de obter os limites da seleção. As descrições breves destes formulários seguem:

  • GetSel(cr) Esse formulário usa a estrutura CHARRANGE com seus membros cpMin e cpMax para retornar os limites.

  • GetSel(nStartChar,nEndChar) Esse formulário retorna os limites nos parâmetros nStartChar e nEndChar.

A seleção inclui tudo se o início (cpMin ou nStartChar) for 0 e o final (cpMax ou nEndChar) for - 1.

Para mais informações, confira a mensagem EM_EXGETSEL e a estrutura CHARRANGE no SDK do Windows.

Exemplo

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

Obtém os atributos de formatação de caracteres da seleção atual.

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

Parâmetros

cf
Na primeira versão, um ponteiro para uma estrutura CHARFORMAT para receber os atributos de formatação de caracteres da seleção atual.

Na segunda versão, um ponteiro para uma estrutura CHARFORMAT2, que é uma extensão Rich Edit 2.0 para a estrutura CHARFORMAT para receber os atributos de formatação de caracteres da seleção atual.

Valor de retorno

O membro de dados dwMask de cf. Ele especifica os atributos de formatação de caractere consistentes em toda a seleção atual.

Comentários

O parâmetro cf recebe os atributos do primeiro caractere na seleção atual. O valor retornado especifica quais atributos são consistentes durante toda a seleção.

Para obter mais informações, consulte a mensagem EM_GETCHARFORMAT e as CHARFORMAT estruturas CHARFORMAT2 no SDK do Windows.

Exemplo

Confira o exemplo de SetSelectionCharFormat.

CRichEditCtrl::GetSelectionType

Determina o tipo de seleção neste objeto CRichEditCtrl.

WORD GetSelectionType() const;

Valor de retorno

Sinalizadores que indicam o conteúdo da seleção atual. Uma combinação dos seguintes sinalizadores:

  • SEL_EMPTY Indica que não há seleção atual.

  • SEL_TEXT Indica que a seleção atual contém texto.

  • SEL_OBJECT Indica que a seleção atual contém pelo menos um item OLE.

  • SEL_MULTICHAR Indica que a seleção atual contém mais de um caractere de texto.

  • SEL_MULTIOBJECT Indica que a seleção atual contém mais de um objeto OLE.

Comentários

Para obter mais informações, consulte EM_SELECTIONTYPE no SDK do Windows.

Exemplo

// 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 os texto da seleção atual neste objeto CRichEditCtrl.

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

Parâmetros

lpBuf
Ponteiro para o buffer para receber o texto na seleção atual.

Valor de retorno

Depende do formulário:

  • GetSelText(lpBuf) O número de caracteres copiados em lpBuf sem incluir a terminação nula.

  • GetSelText( ) A cadeia de caracteres que contém a seleção atual.

Comentários

Se usar o primeiro formulário GetSelText(lpBuf), você deverá garantir que o buffer seja grande o suficiente para o texto que ele receberá. Chame GetSel para determinar o número de caracteres na seleção atual.

Para obter mais informações, consulte EM_GETSELTEXT no SDK do Windows.

Exemplo

Confira o exemplo de CRichEditCtrl::GetSelectionType.

CRichEditCtrl::GetTextLength

Recupera o comprimento do texto, em caracteres, neste objeto CRichEditCtrl, sem incluir o caractere nulo de terminação.

long GetTextLength() const;

Valor de retorno

O comprimento do texto neste objeto CRichEditCtrl.

Comentários

Para obter mais informações, consulte WM_GETTEXTLENGTH no SDK do Windows.

Exemplo

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

CRichEditCtrl::GetTextLengthEx

Calcula o comprimento do texto no controle de edição avançada.

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

Parâmetros

dwFlags
Valor que especifica o método a ser usado para determinar o comprimento do texto. Esse membro pode ser um ou mais dos valores listados no membro dos sinalizadores de GETTEXTLENGTHEX descrito no SDK do Windows.

uCodePage
Página de código para tradução (CP_ACP para Página de Código ANSI, 1200 para Unicode).

Valor de retorno

O número de caracteres ou bytes no controle de edição. Se sinalizadores incompatíveis foram definidos em dwFlags, essa função membro retornará E_INVALIDARG.

Comentários

GetTextLengthEx fornece maneiras adicionais de determinar o comprimento do texto. Dá suporte à funcionalidade Rich Edit 2.0. Consulte Sobre controles de edição avançada no SDK do Windows para obter mais informações.

CRichEditCtrl::GetTextMode

Recupera o modo de texto atual e o nível para desfazer um controle de edição avançada.

UINT GetTextMode() const;

Valor de retorno

Um conjunto de sinalizadores de bit do tipo de enumeração TEXTMODE, conforme descrito no SDK do Windows. Os sinalizadores indicam o modo de texto atual e o nível de desfazer do controle.

CRichEditCtrl::GetTextRange

Obtém o intervalo de caracteres especificado.

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

Parâmetros

nFirst
O índice de posição do caractere imediatamente anterior ao primeiro caractere no intervalo.

nLast
A posição do caractere imediatamente após o último caractere no intervalo.

refString
Uma referência a um objeto CString que receberá o texto.

Valor de retorno

O número de caracteres copiados, não incluindo o caractere nulo de terminação.

Comentários

Para obter mais informações, consulte EM_GETTEXTRANGE no SDK do Windows.

GetTextRange dá suporte à funcionalidade Rich Edit 2.0. Consulte Sobre controles de edição avançada no SDK do Windows para obter mais informações.

CRichEditCtrl::GetUndoName

Recupera o tipo da próxima ação disponível na fila de desfazer, se houver.

UNDONAMEID GetUndoName() const;

Valor de retorno

Se uma ação de desfazer estiver na fila de desfazer do controle, GetUndoName retornará o tipo de enumeração UNDONAMEID indicando o tipo da próxima ação na fila. Se a fila de desfazer estiver vazia ou se a ação de desfazer na fila for de um tipo desconhecido, GetUndoName retornará 0.

Comentários

Os tipos de ações que podem ser desfeitas ou refeitas incluem operações de digitação, exclusão, arrastar e soltar, recortar e colar. Essas informações podem ser úteis para aplicativos que fornecem uma interface de usuário estendida para operações desfazer e refazer, como uma caixa de listagem suspensa de ações que podem ser desfeitas.

CRichEditCtrl::GetWordWrapMode

Recupera as opções atuais de quebra automática de linha e separação de palavras para o controle de edição avançada.

UINT GetWordWrapMode() const;

Valor de retorno

As opções atuais de quebra automática de linha e separação de palavras. Essas opções estão descritas no EM_SETWORDWRAPMODE no SDK do Windows.

Comentários

Essa função membro está disponível apenas nas versões em idioma asiático do sistema operacional.

CRichEditCtrl::HideSelection

Altera a visibilidade da seleção.

void HideSelection(
    BOOL bHide,
    BOOL bPerm);

Parâmetros

bHide
Indica se a seleção deve ser exibida ou oculta, TRUE para ocultar a seleção.

bPerm
Indica se essa alteração na visibilidade da seleção deve ser permanente.

Comentários

Quando bPerm é TRUE, ele altera a opção ECO_NOHIDESEL para este objeto CRichEditCtrl. Para obter uma breve descrição dessa opção, consulte SetOptions. Você pode usar essa função para definir todas as opções para esse objeto CRichEditCtrl.

Para obter mais informações, consulte EM_HIDESELECTION no SDK do Windows.

Exemplo

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

CRichEditCtrl::LimitText

Limita o comprimento do texto que o usuário pode inserir em um controle de edição.

void LimitText(long nChars = 0);

Parâmetros

nChars
Especifica o comprimento (em bytes) do texto que o usuário pode inserir. Se esse parâmetro for 0 (o valor padrão), o comprimento do texto será definido como 64K bytes.

Comentários

A alteração do limite de texto restringe apenas o texto que o usuário pode inserir. Ele não tem nenhum efeito sobre nenhum texto já no controle de edição, nem afeta o comprimento do texto copiado no controle de edição pela função membro SetWindowText em CWnd. Se um aplicativo usar a função SetWindowText para colocar mais texto em um controle de edição do que o especificado na chamada para LimitText, o usuário poderá excluir qualquer texto no controle de edição. No entanto, o limite de texto impedirá que o usuário substitua o texto existente por um novo texto, a menos que a exclusão da seleção atual faça com que o texto fique abaixo do limite de texto.

Observação

Para o limite de texto, cada item OLE conta como um único caractere.

Para obter mais informações, consulte EM_EXLIMITTEXT no SDK do Windows.

Exemplo

// 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 o número de linha da linha que contém o índice de caracteres especificado.

long LineFromChar(long nIndex) const;

Parâmetros

nIndex
Contém o valor de índice baseado em zero para o caractere desejado no texto do controle de edição ou contém -1. Se nIndex for -1, ele especifica a linha atual, ou seja, a linha que contém o sinal de interpolação.

Valor de retorno

O número de linha baseado em zero da linha que contém o índice de caracteres especificado por nIndex. Se nIndex for -1, o número da linha que contém o primeiro caractere da seleção será retornado. Se não houver seleção, o número de linha atual será retornado.

Comentários

Um índice de caracteres é o número de caracteres desde o início do controle de edição avançada. Para contagem de caracteres, um item OLE é contado como um único caractere.

Para obter mais informações, consulte EM_EXLINEFROMCHAR no SDK do Windows.

Exemplo

// 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 o índice de caracteres de uma linha neste objeto CRichEditCtrl.

int LineIndex(int nLine = -1) const;

Parâmetros

nLine
Contém o valor de índice para a linha desejada no texto do controle de edição ou contém -1. Se nLine for -1, ele especifica a linha atual, ou seja, a linha que contém o sinal de interpolação.

Valor de retorno

O índice de caracteres da linha especificada em nLine ou -1 se o número de linha especificado for maior que o número de linhas no controle de edição.

Comentários

O índice de caracteres é o número de caracteres desde o início do controle de edição avançada até a linha especificada.

Para obter mais informações, consulte EM_LINEINDEX no SDK do Windows.

Exemplo

// 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 o comprimento de uma linha em um controle de edição avançada.

int LineLength(int nLine = -1) const;

Parâmetros

nLine
Especifica o índice de um caractere na linha cujo comprimento deve ser recuperado. Se esse parâmetro for -1, o comprimento da linha atual (a linha que contém o ponto de inserção) será retornado, sem incluir o comprimento de qualquer texto selecionado na linha. Quando LineLength é chamado para um controle de edição de linha única, esse parâmetro é ignorado.

Valor de retorno

Quando LineLength é chamado para um controle de edição de várias linhas, o valor retornado é o comprimento (em TCHAR) da linha especificada por nLine. Ele não inclui o caractere de retorno de carro no final da linha. Quando LineLength é chamado para um controle de edição de linha única, o valor retornado é o comprimento (em TCHAR) do texto no controle de edição. Se nLine for maior que o número de caracteres no controle, o valor retornado será zero.

Comentários

Use a função membro LineIndex para recuperar um índice de caracteres para um determinado número de linha nesse objeto CRichEditCtrl.

Para obter mais informações, consulte EM_LINELENGTH no SDK do Windows.

Exemplo

Confira o exemplo de LineIndex.

CRichEditCtrl::LineScroll

Rola o texto de um controle de edição de várias linhas.

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

Parâmetros

nLines
Especifica o número de linhas a serem roladas verticalmente.

nChars
Especifica o número de posições de caractere a serem roladas horizontalmente. Esse valor será ignorado se o controle de edição avançada tiver o estilo ES_RIGHT ou ES_CENTER. Os estilos de edição estão especificados em Create.

Comentários

O controle de edição não rola verticalmente após a última linha de texto no controle de edição. Se a linha atual mais o número de linhas especificadas por nLines exceder o número total de linhas no controle de edição, o valor será ajustado para que a última linha do controle de edição seja rolada até a parte superior da janela de controle de edição.

LineScroll pode ser usado para rolar horizontalmente após o último caractere de qualquer linha.

Para obter mais informações, consulte EM_LINESCROLL no SDK do Windows.

Exemplo

Confira o exemplo de GetFirstVisibleLine.

CRichEditCtrl::Paste

Insere os dados da área de transferência para CRichEditCtrl no ponto de inserção, o local do cursor.

void Paste();

Comentários

Os dados serão inseridos somente se a área de transferência contiver dados em um formato reconhecido.

Para obter mais informações, consulte WM_PASTE no SDK do Windows.

Exemplo

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

CRichEditCtrl::PasteSpecial

Cola os dados em um formato específico da área de transferência nesse objeto CRichEditCtrl.

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

Parâmetros

nClipFormat
Formato de área de transferência a ser colado nesse objeto CRichEditCtrl.

dvAspect
Aspecto do dispositivo para os dados a serem recuperados da área de transferência.

hMF
Identificador do metarquivo que contém a exibição icônica do objeto a ser colado.

Comentários

O novo material é inserido no ponto de inserção.

Para obter mais informações, consulte EM_PASTESPECIAL no SDK do Windows.

Exemplo

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

CRichEditCtrl::PosFromChar

Recupera as coordenadas da área do cliente de um caractere especificado em um controle de edição.

CPoint PosFromChar(UINT nChar) const;

Parâmetros

nChar
O índice com base em zero do caractere.

Valor de retorno

A posição do caractere (x, y). Para um controle de edição de linha única, a coordenada y é sempre zero.

Comentários

Para obter mais informações, consulte EM_POSFROMCHAR no SDK do Windows.

CRichEditCtrl::Redo

Refaz a próxima ação na fila de restauração do controle.

BOOL Redo();

Valor de retorno

Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Para obter mais informações, consulte EM_REDO no SDK do Windows.

CRichEditCtrl::ReplaceSel

Substitui a seleção atual neste objeto CRichEditCtrl pelo texto especificado.

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

Parâmetros

lpszNewText
Ponteiro para uma cadeia de caracteres terminada em nulo que contém o texto de substituição.

bCanUndo
Para especificar que essa função pode ser desfeita, defina o valor desse parâmetro como TRUE. O valor padrão é FALSE.

Comentários

Para substituir todo o texto neste objeto CRichEditCtrl, use CWnd::SetWindowText.

Se não houver uma seleção atual, o texto de substituição será inserido no ponto de inserção.

Essa função formatará o texto inserido com a formatação de caractere existente. Ao substituir todo o intervalo de texto (chamando SetSel(0,-1) antes de chamar ReplaceSel), há um caractere de fim de parágrafo que retém a formatação do parágrafo anterior, que é herdada pelo texto recém-inserido.

Para obter mais informações, consulte EM_REPLACESEL no SDK do Windows.

Exemplo

Confira o exemplo de LineIndex.

CRichEditCtrl::RequestResize

Força esse objeto CRichEditCtrl a enviar mensagens de notificação EN_REQUESTRESIZE para sua janela pai.

void RequestResize();

Comentários

Essa função é útil durante o processamento CWnd::OnSize de um objeto CRichEditCtrl sem fundo.

Para obter mais informações, consulte a mensagem EM_REQUESTRESIZE e a seção Controles de edição avançada sem parte inferior de Sobre controles de edição avançada no SDK do Windows.

CRichEditCtrl::SetAutoURLDetect

Define o controle de edição avançada para detectar uma URL automaticamente.

BOOL SetAutoURLDetect(BOOL bEnable = TRUE);

Parâmetros

bEnable
Especifica se o controle está definido para detectar uma URL automaticamente. Se TRUE, ele está habilitado. Se FALSE, ele está desabilitado.

Valor de retorno

Zero se bem-sucedido; caso contrário, diferente de zero. Por exemplo, a mensagem pode falhar devido à memória insuficiente.

Comentários

Se habilitado, o controle de edição avançada examinará o texto para determinar se ele corresponde a um formato de URL padrão. Para obter uma lista desses formatos de URL, consulte EM_AUTOURLDETECT no SDK do Windows.

Observação

Não defina SetAutoURLDetect como TRUE se o controle de edição usar o efeito CFE_LINK para texto diferente de URLs. SetAutoURLDetect habilita esse efeito para URLs e o desabilita para todos os outros textos. Consulte EN_LINK para obter mais informações sobre o efeito de CFE_LINK.

CRichEditCtrl::SetBackgroundColor

Define a cor da tela de fundo deste objeto CRichEditCtrl.

COLORREF SetBackgroundColor(
    BOOL bSysColor,
    COLORREF cr);

Parâmetros

bSysColor
Indica se a cor da tela de fundo deve ser definida como o valor do sistema. Se esse valor for TRUE, cr será ignorado.

cr
A cor da tela de fundo solicitada. Usado somente se bSysColor for FALSE.

Valor de retorno

A cor da tela de fundo anterior deste objeto CRichEditCtrl.

Comentários

A cor da tela de fundo pode ser definida como o valor do sistema ou um valor COLORREF especificado.

Para mais informações, confira a mensagem EM_SETBKGNDCOLOR e a estrutura COLORREF no SDK do Windows.

Exemplo

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

CRichEditCtrl::SetDefaultCharFormat

Define os atributos de formatação de caracteres para o novo texto neste objeto CRichEditCtrl.

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

Parâmetros

cf
Na primeira versão, um ponteiro para uma estrutura CHARFORMAT que contém os novos atributos de formatação de caractere padrão.

Na segunda versão, um ponteiro para uma estrutura CHARFORMAT2, que é uma extensão Rich Edit 2.0 para a estrutura CHARFORMAT, contendo os atributos de formatação de caractere padrão.

Valor de retorno

Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Somente os atributos especificados pelo membro dwMask de cf são alterados por essa função.

Para obter mais informações, consulte a mensagem EM_SETCHARFORMAT e as CHARFORMAT estruturas CHARFORMAT2 no SDK do Windows.

Exemplo

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

Define a máscara de evento para este objeto CRichEditCtrl.

DWORD SetEventMask(DWORD dwEventMask);

Parâmetros

dwEventMask
A nova máscara de evento para este objeto CRichEditCtrl.

Valor de retorno

A máscara de evento anterior.

Comentários

A máscara de evento especifica quais mensagens de notificação o objeto CRichEditCtrl envia para a janela pai.

Para obter mais informações, consulte EM_SETEVENTMASK no SDK do Windows.

Exemplo

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

Define ou limpa o sinalizador modificado para um controle de edição.

void SetModify(BOOL bModified = TRUE);

Parâmetros

bModified
Um valor TRUE indica que o texto foi modificado e um valor FALSE indica que ele não foi modificado. Por padrão, o sinalizador modificado é definido.

Comentários

O sinalizador modificado indica se o texto no controle de edição foi modificado ou não. Ele é definido automaticamente sempre que o usuário altera o texto. Seu valor pode ser recuperado com a função membro GetModify.

Para obter mais informações, consulte EM_SETMODIFY no SDK do Windows.

Exemplo

Confira o exemplo de GetModify.

CRichEditCtrl::SetOLECallback

Fornece a esse objeto CRichEditCtrl um objeto IRichEditOleCallback a ser usado para acessar recursos e informações relacionadas ao OLE.

BOOL SetOLECallback(IRichEditOleCallback* pCallback);

Parâmetros

pCallback
Ponteiro para um objeto IRichEditOleCallback que esse objeto CRichEditCtrl usará para obter recursos e informações relacionadas ao OLE.

Valor de retorno

Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Esse objeto CRichEditCtrl irá chamar IUnknown::AddRef para incrementar a contagem de uso para o objeto COM especificado por pCallback.

Para obter mais informações, consulte a mensagem EM_SETOLECALLBACK e a interface IRichEditOleCallback no SDK do Windows.

CRichEditCtrl::SetOptions

Define as opções para este objeto CRichEditCtrl.

void SetOptions(
    WORD wOp,
    DWORD dwFlags);

Parâmetros

wOp
Indica o tipo de operação. Um dos seguintes valores:

  • ECOOP_SET Defina as opções como as especificadas por dwFlags.

  • ECOOP_OR Combine as opções atuais com as especificadas por dwFlags.

  • ECOOP_AND Mantenha somente as opções atuais que também são especificadas por dwFlags.

  • ECOOP_XOR OR logicamente exclusivo as opções atuais pelas especificadas por dwFlags.

dwFlags
Opções de edição avançada. Os valores do sinalizador estão listados na seção Comentários.

Comentários

As opções podem ser uma combinação dos seguintes valores:

  • ECO_AUTOWORDSELECTION Seleção automática de palavras clicando duas vezes.

  • ECO_AUTOVSCROLL Rola automaticamente o texto para a direita em até 10 caracteres quando o usuário digita um caractere no fim da linha. Quando o usuário pressiona a tecla ENTER, o controle rola todo o texto de volta para a posição zero.

  • ECO_AUTOHSCROLL Rola automaticamente o texto para cima em uma página quando o usuário pressiona a tecla ENTER na última linha.

  • ECO_NOHIDESEL Nega o comportamento padrão de um controle de edição. O comportamento padrão oculta a seleção quando o controle perde o foco de entrada e exibe a seleção quando o controle recebe o foco de entrada. Se você especificar ECO_NOHIDESEL, o texto selecionado será invertido, mesmo que o controle não tenha o foco.

  • ECO_READONLY Impede que o usuário digite ou edite texto no controle de edição.

  • ECO_WANTRETURN Especifica que um retorno de carro seja inserido quando o usuário pressiona a tecla ENTER ao inserir o texto em um controle de edição avançada de várias linhas em uma caixa de diálogo. Se você não especificar esse estilo, pressionar a tecla ENTER enviará um comando para a janela pai do controle de edição avançada, que imita o clique no botão padrão da janela pai (por exemplo, o botão OK em uma caixa de diálogo). Esse estilo não tem efeito em um controle de edição de linha única.

  • ECO_SAVESEL Preserva a seleção quando o controle perde o foco. Por padrão, todo o conteúdo do controle é selecionado quando o foco é recuperado.

  • ECO_VERTICAL Desenha texto e objetos na direção vertical. Disponível somente para idiomas asiáticos.

Para obter mais informações, consulte EM_SETOPTIONS no SDK do Windows.

Exemplo

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

CRichEditCtrl::SetParaFormat

Define os atributos de formatação do parágrafo da seleção atual neste objeto CRichEditCtrl.

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

Parâmetros

pf
Na primeira versão, um ponteiro para uma estrutura PARAFORMAT que contém os novos atributos de formatação de parágrafo padrão.

Na segunda versão, um ponteiro para uma estrutura PARAFORMAT2, que é uma extensão Rich Edit 2.0 para a estrutura PARAFORMAT, mantendo os atributos de formatação de caractere padrão.

Valor de retorno

Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Somente os atributos especificados pelo membro dwMask de pf são alterados por essa função.

Para obter mais informações, consulte a mensagem EM_SETPARAFORMAT e as PARAFORMAT estruturas PARAFORMAT2 no SDK do Windows.

Exemplo

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

Define a pontuação em um controle de edição avançada.

BOOL SetPunctuation(
    UINT fType,
    PUNCTUATION* lpPunc);

Parâmetros

fType
O sinalizador de pontuação. Para obter uma lista de valores possíveis, consulte o parâmetro fType para EM_SETPUNCTUATION no SDK do Windows.

lpPunc
Um ponteiro para uma estrutura PUNCTUATION, conforme descrito no SDK do Windows.

Valor de retorno

Diferente de zero em caso de êxito; caso contrário, 0.

Comentários

Essa função membro está disponível apenas nas versões em idioma asiático do sistema operacional.

CRichEditCtrl::SetReadOnly

Altera a opção ECO_READONLY para este objeto CRichEditCtrl.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Parâmetros

bReadOnly
Indica se esse objeto CRichEditCtrl deve ser somente leitura.

Valor de retorno

Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Para obter uma breve descrição dessa opção, consulte SetOptions. Você pode usar essa função para definir todas as opções para esse objeto CRichEditCtrl.

Para obter mais informações, consulte EM_SETREADONLY no SDK do Windows.

Exemplo

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

CRichEditCtrl::SetRect

Define o retângulo de formatação deste objeto CRichEditCtrl.

void SetRect(LPCRECT lpRect);

Parâmetros

lpRect
CRect ou ponteiro para um RECT que indica os novos limites para o retângulo de formatação.

Comentários

O retângulo de formatação é o retângulo limitador do texto. O retângulo limitador independe do tamanho da janela de controle de edição avançada. Quando esse objeto CRichEditCtrl é criado pela primeira vez, o retângulo de formatação tem o mesmo tamanho que a área do cliente da janela. Use SetRect para tornar o retângulo de formatação maior ou menor que a janela de edição avançada.

Para obter mais informações, consulte EM_SETRECT no SDK do Windows.

Exemplo

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

Define a seleção neste objeto CRichEditCtrl.

void SetSel(
    long nStartChar,
    long nEndChar);

void SetSel(CHARRANGE& cr);

Parâmetros

nStartChar
Índice baseado em zero do primeiro caractere para a seleção.

nEndChar
Índice baseado em zero do último caractere para a seleção.

cr
CHARRANGE estrutura que contém os limites da seleção atual.

Comentários

As duas formas dessa função fornecem maneiras alternativas de definir os limites da seleção. As descrições breves destes formulários seguem:

  • SetSel(cr) Esse formulário usa a estrutura CHARRANGE com seus membros cpMin e cpMax para definir os limites.

  • SetSel(nStartChar,nEndChar) Esse formulário usa os parâmetros nStartChar e nEndChar para definir os limites.

O sinal de interpolação é colocado no final da seleção indicado pelos maior entre os índices de início (cpMin ou nStartChar) e final (cpMax ou nEndChar). Essa função rola o conteúdo de CRichEditCtrl para que o sinal de interpolação fique visível.

Para selecionar todo o texto neste objeto CRichEditCtrl, chame SetSel com um índice inicial de 0 e um índice final de - 1.

Para mais informações, confira a mensagem EM_EXSETSEL e a estrutura CHARRANGE no SDK do Windows.

Exemplo

Confira o exemplo de GetSel.

CRichEditCtrl::SetSelectionCharFormat

Define os atributos de formatação de caractere do texto na seleção atual neste objeto CRichEditCtrl.

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

Parâmetros

cf
Na primeira versão, um ponteiro para uma estrutura CHARFORMAT que contém os novos atributos de formatação de caractere da seleção atual.

Na segunda versão, um ponteiro para uma estrutura CHARFORMAT2, que é uma extensão Rich Edit 2.0 para a estrutura CHARFORMAT contendo os novos atributos de formatação de caracteres para a seleção atual.

Valor de retorno

Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Somente os atributos especificados pelo membro dwMask de cf são alterados por essa função.

Para obter mais informações, consulte as estruturas EM_SETCHARFORMAT, CHARFORMAT e CHARFORMAT2 no SDK do Windows.

Exemplo

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

Define o dispositivo de destino e a largura da linha usada para a formatação WYSIWYG neste objeto CRichEditCtrl.

BOOL SetTargetDevice(
    HDC hDC,
    long lLineWidth);

BOOL SetTargetDevice(
    CDC& dc,
    long lLineWidth);

Parâmetros

hDC
Identificador do contexto do dispositivo para o novo dispositivo de destino.

lLineWidth
Largura da linha a ser usada para formatação.

dc
CDC para o novo dispositivo de destino.

Valor de retorno

Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Se essa função for bem-sucedida, o controle de edição avançada será proprietário do contexto do dispositivo passado como um parâmetro. Nesse caso, a função de chamada não deve destruir o contexto do dispositivo.

Para obter mais informações, consulte EM_SETTARGETDEVICE no SDK do Windows.

Exemplo

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

Define o modo de texto ou o nível de desfazer e refazer de um controle de edição avançada.

BOOL SetTextMode(UINT fMode);

Parâmetros

fMode
Especifica as novas configurações do modo de texto do controle e parâmetros do nível de desfazer. Para obter uma lista dos valores possíveis, consulte o parâmetro de modo para EM_SETTEXTMODE no SDK do Windows.

Valor de retorno

Zero se bem-sucedido; caso contrário, diferente de zero.

Comentários

Para obter uma descrição dos modos de texto, consulte EM_SETTEXTMODE no SDK do Windows.

Essa função membro falhará se o controle contiver texto. Para verificar se o controle está vazio, envie uma mensagem WM_SETTEXT com uma cadeia de caracteres vazia.

CRichEditCtrl::SetUndoLimit

Define o número máximo de ações que podem ser armazenadas na fila de desfazer.

UINT SetUndoLimit(UINT nLimit);

Parâmetros

nLimit
Especifica o número máximo de ações que podem ser armazenadas na fila de desfazer. Definido como zero para desabilitar a função Desfazer.

Valor de retorno

O novo número máximo de ações de desfazer para o controle de edição avançada.

Comentários

Por padrão, o número máximo de ações na fila de desfazer é 100. Se você aumentar esse número, deverá haver memória disponível suficiente para acomodar o novo número. Para melhorar o desempenho, defina o limite como o menor valor possível.

CRichEditCtrl::SetWordCharFormat

Define os atributos de formatação de caracteres para a palavra selecionada no momento neste objeto CRichEditCtrl.

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

Parâmetros

cf
Na primeira versão, um ponteiro para uma estrutura CHARFORMAT que contém os novos atributos de formatação de caractere da palavra atualmente selecionada.

Na segunda versão, um ponteiro para uma estrutura CHARFORMAT2, que é uma extensão Rich Edit 2.0 para a estrutura CHARFORMAT contendo os novos atributos de formatação de caracteres da palavra atualmente selecionada.

Valor de retorno

Diferente de zero se tiver êxito. caso contrário, 0.

Comentários

Somente os atributos especificados pelo membro dwMask de cf são alterados por essa função.

Para obter mais informações, consulte a mensagem EM_SETCHARFORMAT e as CHARFORMAT estruturas CHARFORMAT2 no SDK do Windows.

Exemplo

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

Define as opções de quebra automática de linha e separação de palavras para o controle de edição avançada.

UINT SetWordWrapMode(UINT uFlags) const;

Parâmetros

uFlags
As opções a serem definidas para quebra automática de linha e separação de palavras. Para obter uma lista de opções possíveis, consulte EM_SETWORDWRAPMODE no SDK do Windows.

Valor de retorno

As opções atuais de quebra automática de linha e separação de palavras.

Comentários

Esta mensagem está disponível somente nas versões em idioma asiático do sistema operacional.

CRichEditCtrl::StopGroupTyping

Impede que o controle colete ações de digitação adicionais na ação de desfazer atual.

void StopGroupTyping();

Comentários

O controle armazena a próxima ação de digitação, se houver, em uma nova ação na fila de desfazer.

Para obter mais informações, consulte EM_STOPGROUPTYPING no SDK do Windows.

CRichEditCtrl::StreamIn

Substitui o texto neste objeto CRichEditCtrl pelo texto do fluxo de entrada especificado.

long StreamIn(
    int nFormat,
    EDITSTREAM& es);

Parâmetros

nFormat
Sinalizadores que especificam os formatos de dados de entrada. Confira a seção Comentários para obter mais informações.

es
EDITSTREAM estrutura especificando o fluxo de entrada. Consulte a seção Comentários para obter mais informações.

Valor de retorno

Número de caracteres lidos do fluxo de entrada.

Comentários

O valor de nFormat deve ser um dos seguintes:

  • SF_TEXT Indica somente leitura de texto.

  • SF_RTF Indica leitura de texto e formatação.

Qualquer um desses valores pode ser combinado com SFF_SELECTION. Se SFF_SELECTION for especificado, StreamIn substituirá a seleção atual pelo conteúdo do fluxo de entrada. Se não for especificado, StreamIn substituirá todo o conteúdo deste objeto CRichEditCtrl.

No parâmetro EDITSTREAMes, você especifica uma função de retorno de chamada que preenche um buffer com texto. Essa função de retorno de chamada é chamada repetidamente até que o fluxo de entrada seja esgotado.

Para mais informações, confira a mensagem EM_STREAMIN e a estrutura EDITSTREAM no SDK do Windows.

Exemplo

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

Grava o conteúdo desse objeto CRichEditCtrl no fluxo de saída especificado.

long StreamOut(
    int nFormat,
    EDITSTREAM& es);

Parâmetros

nFormat
Sinalizadores que especificam os formatos de dados de saída. Confira a seção Comentários para obter mais informações.

es
EDITSTREAM estrutura especificando o fluxo de entrada. Consulte a seção Comentários para obter mais informações.

Valor de retorno

Número de caracteres gravados no fluxo de saída.

Comentários

O valor de nFormat deve ser um dos seguintes:

  • SF_TEXT Indica apenas gravação de texto.

  • SF_RTF Indica gravação de texto e formatação.

  • SF_RTFNOOBJS Indica gravação de texto e formatação, substituindo itens OLE por espaços.

  • SF_TEXTIZED Indica gravação de texto e formatação, com representações textuais de itens OLE.

Qualquer um desses valores pode ser combinado com SFF_SELECTION. Se SFF_SELECTION for especificado, StreamOut gravará a seleção atual no fluxo de saída. Se não for especificado, StreamOut gravará todo o conteúdo desse objeto CRichEditCtrl.

No parâmetro EDITSTREAMes, você especifica uma função de retorno de chamada que preenche um buffer com texto. Essa função de retorno de chamada é chamada repetidamente até que o fluxo de saída seja esgotado.

Para mais informações, confira a mensagem EM_STREAMOUT e a estrutura EDITSTREAM no SDK do Windows.

Exemplo

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

Desfaz a última operação no controle de edição avançada.

BOOL Undo();

Valor de retorno

Diferente de zero se a operação de desfazer for bem-sucedida; caso contrário, 0.

Comentários

Uma operação de desfazer também pode ser desfeita. Por exemplo, você pode restaurar o texto excluído com a primeira chamada para Undo. Desde que não haja uma operação de edição intervindo, você poderá remover o texto novamente com uma segunda chamada para Undo.

Para obter mais informações, consulte EM_UNDO no SDK do Windows.

Exemplo

Confira o exemplo de CanUndo.

Confira também

WORDPAD de exemplo do MFC
Classe CWnd
Gráfico da hierarquia
Classe CEdit
Classe CRichEditView