Classe CRichEditView

Com CRichEditDoc e CRichEditCntrItem, fornece a funcionalidade de controle de edição avançada dentro do contexto da arquitetura de exibição de documento do MFC.

Sintaxe

class CRichEditView : public CCtrlView

Membros

Construtores públicos

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

Métodos públicos

Nome Descrição
CRichEditView::AdjustDialogPosition Move uma caixa de diálogo para que a seleção atual não fique obscura.
CRichEditView::CanPaste Informa se a Área de Transferência contém dados que podem ser colados na exibição de edição avançada.
CRichEditView::DoPaste Cola um item OLE nessa exibição de edição avançada.
CRichEditView::FindText Localiza o texto especificado, invocando o cursor de espera.
CRichEditView::FindTextSimple Localiza o texto especificado.
CRichEditView::GetCharFormatSelection Recupera os atributos de formatação de caracteres da seleção atual.
CRichEditView::GetDocument Recupera um ponteiro para o CRichEditDoc relacionado.
CRichEditView::GetInPlaceActiveItem Recupera o item OLE ativo no momento na exibição de edição avançada.
CRichEditView::GetMargins Recupera as margens para essa exibição de edição avançada.
CRichEditView::GetPageRect Recupera o retângulo de página para esta exibição de edição avançada.
CRichEditView::GetPaperSize Recupera o tamanho do papel para esta exibição de edição avançada.
CRichEditView::GetParaFormatSelection Recupera os atributos de formatação do parágrafo da seleção atual.
CRichEditView::GetPrintRect Recupera o retângulo de impressão para esta exibição de edição avançada.
CRichEditView::GetPrintWidth Recupera a largura de impressão para esta exibição de edição avançada.
CRichEditView::GetRichEditCtrl Recupera o controle de edição avançada.
CRichEditView::GetSelectedItem Recupera o item selecionado da exibição de edição avançada.
CRichEditView::GetTextLength Recupera o comprimento do texto na exibição de edição avançada.
CRichEditView::GetTextLengthEx Recupera o número de caracteres ou bytes na exibição de edição avançada. Lista de sinalizadores expandidos para o método de determinação do comprimento.
CRichEditView::InsertFileAsObject Insere um arquivo como um item OLE.
CRichEditView::InsertItem Insere um novo item como um item OLE.
CRichEditView::IsRichEditFormat Informa se a Área de Transferência contém dados em um formato de edição ou texto avançado.
CRichEditView::OnCharEffect Alterna a formatação de caracteres para a seleção atual.
CRichEditView::OnParaAlign Altera o alinhamento dos parágrafos.
CRichEditView::OnUpdateCharEffect Atualizações a interface do usuário de comando para funções de membro público de caracteres.
CRichEditView::OnUpdateParaAlign Atualizações a interface do usuário de comando para funções de membro público de parágrafo.
CRichEditView::PrintInsideRect Formata o texto especificado no retângulo especificado.
CRichEditView::PrintPage Formata o texto especificado na página especificada.
CRichEditView::SetCharFormat Define os atributos de formatação de caracteres da seleção atual.
CRichEditView::SetMargins Define as margens para essa exibição de edição avançada.
CRichEditView::SetPaperSize Define o tamanho do papel para esta exibição de edição avançada.
CRichEditView::SetParaFormat Define os atributos de formatação do parágrafo da seleção atual.
CRichEditView::TextNotFound Redefine o estado da pesquisa interna do controle.

Métodos protegidos

Nome Descrição
CRichEditView::GetClipboardData Recupera um objeto da Área de Transferência para um intervalo nesta exibição de edição avançada.
CRichEditView::GetContextMenu Recupera um menu de contexto a ser usado no pressionamento do botão direito do mouse.
CRichEditView::IsSelected Indica se o item OLE determinado foi selecionado ou não.
CRichEditView::OnFindNext Localiza a próxima ocorrência de uma substring.
CRichEditView::OnInitialUpdate Atualiza a exibição quando anexado pela primeira vez a um documento.
CRichEditView::OnPasteNativeObject Recupera dados nativos de um item OLE.
CRichEditView::OnPrinterChanged Define as características de impressão do dispositivo especificado.
CRichEditView::OnReplaceAll Substitui todas as ocorrências de uma determinada cadeia de caracteres por uma nova cadeia de caracteres.
CRichEditView::OnReplaceSel Substitui a seleção atual.
CRichEditView::OnTextNotFound Manipula a notificação do usuário de que o texto solicitado não foi encontrado.
CRichEditView::QueryAcceptData Consultas sobre os dados no IDataObject.
CRichEditView::WrapChanged Ajusta o dispositivo de saída para o destino para essa exibição de edição avançada, com base no valor de m_nWordWrap.

Membros de Dados Públicos

Nome Descrição
CRichEditView::m_nBulletIndent Indica a quantidade de recuo das listas de marcadores.
CRichEditView::m_nWordWrap Indica as restrições da quebra automática de linha.

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.

CRichEditView mantém a característica de texto e formatação do texto. CRichEditDoc mantém a lista de itens de cliente OLE que estão na exibição. CRichEditCntrItem fornece acesso do lado do contêiner ao item do cliente OLE.

Esse controle Comum do Windows (e, portanto, o CRichEditCtrl e classes relacionadas) está disponível apenas para programas em execução nas versões 3.51 e posteriores do Windows 95/98 e Windows NT.

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

Hierarquia de herança

CObject

CCmdTarget

CWnd

CView

CCtrlView

CRichEditView

Requisitos

Cabeçalho: afxrich.h

CRichEditView::AdjustDialogPosition

Chame essa função para mover a caixa de diálogo fornecida para que a seleção atual não fique obscura.

void AdjustDialogPosition(CDialog* pDlg);

Parâmetros

pDlg
Ponteiro para um objeto CDialog.

CRichEditView::CanPaste

Chame essa função para determinar se a Área de Transferência contém informações que podem ser coladas na exibição de edição avançada.

BOOL CanPaste() const;

Valor de retorno

Diferente de zero se a Área de Transferência contiver dados em um formato aceito por essa exibição de edição avançada; caso contrário, 0.

CRichEditView::CRichEditView

Chame essa função para criar um objeto CRichEditView.

CRichEditView();

CRichEditView::DoPaste

Chame essa função para colar o item OLE no dataobj neste documento/exibição de edição avançada.

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

Parâmetros

dataobj
COleDataObject que contém os dados a serem colados.

cf
O formato desejado da área de transferência.

hMetaPict
O metarquivo que representa o item a ser colado.

Comentários

A estrutura chama essa função como parte da implementação padrão de QueryAcceptData.

Essa função determina o tipo de colagem com base nos resultados do manipulador para Colar Especial. Se cf for 0, o novo item usará a representação icônica atual. Se cf não for zero e hMetaPict não for NULL, o novo item usará hMetaPict para sua representação.

CRichEditView::FindText

Chame essa função para localizar o texto especificado e defina-o como a seleção atual.

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

Parâmetros

lpszFind
Contém a cadeia de caracteres que será pesquisada.

bCase
Indica se a pesquisa diferenciará maiúsculas de minúsculas.

bWord
Indica se a pesquisa deve corresponder somente a palavras inteiras, não a partes das palavras.

bNext
Indica a direção da pesquisa. Se TRUE, a direção da pesquisa será o final do buffer. Se FALSE, a direção da pesquisa será o início do buffer.

Valor de retorno

Diferente de zero se o texto lpszFind for encontrado; caso contrário, 0.

Comentários

Essa função exibe o cursor de espera durante a operação de localização.

Exemplo

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

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

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

CRichEditView::FindTextSimple

Chame essa função para localizar o texto especificado e defina-o como a seleção atual.

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

Parâmetros

lpszFind
Contém a cadeia de caracteres que será pesquisada.

bCase
Indica se a pesquisa diferenciará maiúsculas de minúsculas.

bWord
Indica se a pesquisa deve corresponder somente a palavras inteiras, não a partes das palavras.

bNext
Indica a direção da pesquisa. Se TRUE, a direção da pesquisa será o final do buffer. Se FALSE, a direção da pesquisa será o início do buffer.

Valor de retorno

Diferente de zero se o texto lpszFind for encontrado; caso contrário, 0.

Exemplo

Consulte o exemplo de CRichEditView::FindText.

CRichEditView::GetCharFormatSelection

Chame essa função para obter os atributos de formatação do caractere da seleção atual.

CHARFORMAT2& GetCharFormatSelection();

Valor de retorno

Uma estrutura CHARFORMAT2 que contém os atributos de formatação do caractere da seleção atual.

Comentários

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

Exemplo

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

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

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

CRichEditView::GetClipboardData

A estrutura chama essa função como parte do processamento de IRichEditOleCallback::GetClipboardData.

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

Parâmetros

lpchrg
Ponteiro para a estrutura CHARRANGE especificando o intervalo de caracteres (e itens OLE) a serem copiados para o objeto de dados especificado por lplpdataobj.

dwReco
Sinalizador de operação da área de transferência. Pode ser um desses valores.

  • RECO_COPY Copiar para a área de transferência.

  • RECO_CUT Recortar para a área de transferência.

  • RECO_DRAG Operação de arrastar (arrastar e soltar).

  • RECO_DROP Operação de soltar (arrastar e soltar).

  • RECO_PASTE Colar da Área de Transferência.

lpRichDataObj
Ponteiro para um objeto IDataObject que contém os dados da Área de Transferência do controle de edição avançada (IRichEditOle::GetClipboardData).

lplpdataobj
Ponteiro para a variável de ponteiro que recebe o endereço do objeto IDataObject que representa o intervalo especificado no parâmetro lpchrg. O valor de lplpdataobj será ignorado se um erro for retornado.

Valor de retorno

Um valor HRESULT relatando o sucesso da operação. Para obter mais informações sobre o HRESULT, confira Estrutura de códigos de erro COM no SDK do Windows.

Comentários

Se o valor retornado indicar êxito, IRichEditOleCallback::GetClipboardData retornará o IDataObject acessado por lplpdataobj; caso contrário, ele retornará o acessado por lpRichDataObj. Substitua essa função para fornecer seus próprios dados da Área de Transferência. A implementação padrão dessa função retorna E_NOTIMPL.

Essa é uma substituição avançada.

Para obter mais informações, consulte IRichEditOle::GetClipboardData, IRichEditOleCallback::GetClipboardData e CHARRANGE no SDK do Windows e consulte IDataObject no SDK do Windows.

CRichEditView::GetContextMenu

A estrutura chama essa função como parte do processamento de IRichEditOleCallback::GetContextMenu.

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

Parâmetros

seltyp
O tipo de seleção. Os valores do tipo de seleção estão descritos na seção Comentários.

lpoleobj
Ponteiro para uma estrutura OLEOBJECT que especifica o primeiro objeto OLE selecionado se a seleção contiver um ou mais itens OLE. Se a seleção não contiver itens, lpoleobj será NULL. A estrutura OLEOBJECT contém um ponteiro para uma tabela V de objeto OLE.

lpchrg
Ponteiro para uma estrutura CHARRANGE que contém a seleção atual.

Valor de retorno

Manipule para o menu de contexto.

Comentários

Essa função é uma parte típica do processamento para baixo do botão direito do mouse.

O tipo de seleção pode ser qualquer 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.

A implementação padrão retorna NULL. Essa é uma substituição avançada.

Para obter mais informações, consulte IRichEditOleCallback::GetContextMenu e CHARRANGE no SDK do Windows.

CRichEditView::GetDocument

Chame essa função para obter um ponteiro para o associado CRichEditDoc a essa exibição.

CRichEditDoc* GetDocument() const;

Valor de retorno

Ponteiro para um objeto CRichEditDoc associado ao objeto CRichEditView.

CRichEditView::GetInPlaceActiveItem

Chame essa função para obter o item OLE que está ativado no momento neste objeto CRichEditView.

CRichEditCntrItem* GetInPlaceActiveItem() const;

Valor de retorno

Um ponteiro para o único objeto CRichEditCntrItem ativo in-loco nesta exibição de edição avançada; NULL se não houver nenhum item OLE atualmente no estado ativo in-loco.

CRichEditView::GetMargins

Chame essa função para recuperar as margens atuais usadas na impressão.

CRect GetMargins() const;

Valor de retorno

As margens usadas na impressão, medidas em MM_TWIPS.

CRichEditView::GetPageRect

Chame essa função para obter as dimensões da página usada na impressão.

CRect GetPageRect() const;

Valor de retorno

Os limites da página usada na impressão, medidos em MM_TWIPS.

Comentários

Esse valor é baseado no tamanho do papel.

CRichEditView::GetPaperSize

Chame essa função para recuperar o tamanho atual do papel.

CSize GetPaperSize() const;

Valor de retorno

O tamanho do papel usado na impressão, medido em MM_TWIPS.

Exemplo

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

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

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

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

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

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

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

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

CRichEditView::GetParaFormatSelection

Chame essa função para obter os atributos de formatação do parágrafo da seleção atual.

PARAFORMAT2& GetParaFormatSelection();

Valor de retorno

Uma estrutura PARAFORMAT2 que contém os atributos de formatação do parágrafo da seleção atual.

Comentários

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

CRichEditView::GetPrintRect

Chame essa função para recuperar os limites da área de impressão no retângulo da página.

CRect GetPrintRect() const;

Valor de retorno

Os limites da área da imagem usada na impressão, medidos em MM_TWIPS.

Exemplo

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

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

   CRichEditView::OnBeginPrinting(pDC, pInfo);
}

CRichEditView::GetPrintWidth

Chame essa função para determinar a largura da área de impressão.

int GetPrintWidth() const;

Valor de retorno

A largura da área de impressão, medida em MM_TWIPS.

CRichEditView::GetRichEditCtrl

Chame essa função para recuperar o objeto CRichEditCtrl associado ao objeto CRichEditView.

CRichEditCtrl& GetRichEditCtrl() const;

Valor de retorno

O objeto CRichEditCtrl para essa exibição.

Exemplo

Consulte o exemplo de CRichEditView::FindText.

CRichEditView::GetSelectedItem

Chame essa função para recuperar o item OLE (um objeto CRichEditCntrItem) atualmente selecionado neste objeto CRichEditView.

CRichEditCntrItem* GetSelectedItem() const;

Valor de retorno

Ponteiro para um objeto CRichEditCntrItem selecionado no objeto CRichEditView; NULL se nenhum item for selecionado nessa exibição.

CRichEditView::GetTextLength

Chame essa função para recuperar o comprimento do texto neste objeto CRichEditView.

long GetTextLength() const;

Valor de retorno

O comprimento do texto neste objeto CRichEditView.

CRichEditView::GetTextLengthEx

Chame essa função membro para calcular o comprimento do texto neste objeto CRichEditView.

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. Para obter mais informações, consulte Sobre controles de edição avançada no SDK do Windows.

CRichEditView::InsertFileAsObject

Chame essa função para inserir o arquivo especificado (como um objeto CRichEditCntrItem) em uma exibição de edição avançada.

void InsertFileAsObject(LPCTSTR lpszFileName);

Parâmetros

lpszFileName
Cadeia de caracteres com o nome do arquivo a ser inserido.

CRichEditView::InsertItem

Chame essa função para inserir o objeto CRichEditCntrItem em uma exibição de edição avançada.

HRESULT InsertItem(CRichEditCntrItem* pItem);

Parâmetros

pItem
Ponteiro para o item a ser inserido.

Valor de retorno

Um valor HRESULT que indica uma inserção bem-sucedida.

Comentários

Para obter mais informações sobre o HRESULT, confira Estrutura de códigos de erro COM no SDK do Windows.

CRichEditView::IsRichEditFormat

Chame essa função para determinar se cf é um formato de área de transferência com texto, rich text ou rich text com itens OLE.

static BOOL AFX_CDECL IsRichEditFormat(CLIPFORMAT cf);

Parâmetros

cf
O formato de área de transferência de interesse.

Valor de retorno

Diferente de zero se cf for um formato de área de transferência de texto ou edição avançada.

CRichEditView::IsSelected

Chame essa função para determinar se o item OLE especificado está selecionado nesta exibição.

virtual BOOL IsSelected(const CObject* pDocItem) const;

Parâmetros

pDocItem
Ponteiro para um objeto na exibição.

Valor de retorno

Diferentes de zero se o objeto estiver selecionado; caso contrário, 0.

Comentários

Substitua essa função se a classe de exibição derivada tiver um método diferente para manipular a seleção de itens OLE.

CRichEditView::m_nBulletIndent

O recuo dos itens de marcador em uma lista; por padrão, 720 unidades, que é de 1/2 polegada.

int m_nBulletIndent;

CRichEditView::m_nWordWrap

Indica o tipo de quebra automática de linha para essa exibição de edição avançada.

int m_nWordWrap;

Comentários

Um dos seguintes valores:

  • WrapNone Indica que não há quebra automática de linha.

  • WrapToWindow Indica a quebra automática de linha com base na largura da janela.

  • WrapToTargetDevice Indica a quebra automática de linha com base nas características do dispositivo de destino.

Exemplo

Consulte o exemplo de CRichEditView::WrapChanged.

CRichEditView::OnCharEffect

Chame essa função para alternar os efeitos da formatação de caracteres para a seleção atual.

void OnCharEffect(
    DWORD dwMask,
    DWORD dwEffect);

Parâmetros

dwMask
Os efeitos da formatação de caractere a serem modificados na seleção atual.

dwEffect
A lista desejada dos efeitos da formatação de caracteres a serem alternados.

Comentários

Cada chamada para essa função alterna os efeitos da formatação especificados na seleção atual.

Para obter mais informações sobre os parâmetros dwMask e dwEffect e seus valores potenciais, consulte os membros de dados correspondentes do CHARFORMAT no SDK do Windows.

Exemplo

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

CRichEditView::OnFindNext

Chamado pela estrutura ao processar comandos da caixa de diálogo Localizar/Substituir.

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

Parâmetros

lpszFind
A cadeia a ser localizada.

bNext
A direção a ser pesquisada: TRUE indica para baixo; FALSE, para cima.

bCase
Indica se a pesquisa deve diferenciar maiúsculas de minúsculas.

bWord
Indica se a pesquisa deve corresponder apenas a palavras inteiras ou não.

Comentários

Chame essa função para localizar texto no CRichEditView. Substitua essa função para alterar as características de pesquisa da classe de exibição derivada.

CRichEditView::OnInitialUpdate

Chamado pela estrutura depois que o modo de exibição é anexado primeiro ao documento, mas antes que o modo de exibição seja exibido inicialmente.

virtual void OnInitialUpdate();

Comentários

A implementação padrão dessa função chama a função membro CView::OnUpdate sem informações de dica (ou seja, usando os valores padrão de 0 para o parâmetro lHint e NULL para o parâmetro pHint). Substitua essa função para executar qualquer inicialização única que exija informações sobre o documento. Por exemplo, se o aplicativo tiver documentos de tamanho fixo, você poderá usar essa função para inicializar os limites de rolagem de uma exibição com base no tamanho do documento. Se o aplicativo der suporte a documentos de tamanho variável, use OnUpdate para atualizar os limites de rolagem sempre que o documento for alterado.

Exemplo

Consulte o exemplo em CRichEditView::m_nWordWrap.

CRichEditView::OnPasteNativeObject

Use essa função para carregar dados nativos de um item inserido.

virtual BOOL OnPasteNativeObject(LPSTORAGE lpStg);

Parâmetros

lpStg
Ponteiro para um objeto IStorage.

Valor de retorno

Retornará um valor diferente de zero se tiver êxito. Caso contrário, 0;

Comentários

Normalmente, isso seria feito criando um COleStreamFile ao redor do IStorage. COleStreamFile pode ser anexado a um arquivo morto e CObject::Serialize chamado para carregar os dados.

Essa é uma substituição avançada.

Para mais informações, confira IStorage no SDK do Windows.

CRichEditView::OnParaAlign

Chame essa função para alterar o alinhamento do parágrafo nos parágrafos selecionados.

void OnParaAlign(WORD wAlign);

Parâmetros

wAlign
Alinhamento do parágrafo desejado. Um dos seguintes valores:

  • PFA_LEFT Alinha os parágrafos com a margem esquerda.

  • PFA_RIGHT Alinha os parágrafos com a margem direita.

  • PFA_CENTER Centraliza os parágrafos entre as margens.

Exemplo

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

CRichEditView::OnPrinterChanged

Substitua essa função para alterar as características dessa exibição de edição avançada quando a impressora for alterada.

virtual void OnPrinterChanged(const CDC& dcPrinter);

Parâmetros

dcPrinter
Um objeto CDC para a nova impressora.

Comentários

A implementação padrão define o tamanho do papel como a altura e a largura do dispositivo de saída (impressora). Se não houver um contexto de dispositivo associado ao dcPrinter, a implementação padrão definirá o tamanho do papel como 8,5 por 11 polegadas.

CRichEditView::OnReplaceAll

Chamado pela estrutura ao processar comandos Substituir tudo da caixa de diálogo Substituir.

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

Parâmetros

lpszFind
O texto a ser substituído.

lpszReplace
O texto de substituição.

bCase
Indica se a pesquisa diferenciará maiúsculas de minúsculas.

bWord
Indica se a pesquisa deve selecionar palavras inteiras ou não.

Comentários

Chame essa função para substituir todas as ocorrências de um determinado texto por outra cadeia de caracteres. Substitua essa função para alterar as características de pesquisa nessa exibição.

Exemplo

Consulte o exemplo de CRichEditView::FindText.

CRichEditView::OnReplaceSel

Chamado pela estrutura ao processar comandos Substituir da caixa de diálogo Substituir.

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

Parâmetros

lpszFind
O texto a ser substituído.

bNext
Indica a direção da pesquisa: TRUE para baixo; FALSE, para cima.

bCase
Indica se a pesquisa diferenciará maiúsculas de minúsculas.

bWord
Indica se a pesquisa deve selecionar palavras inteiras ou não.

lpszReplace
O texto de substituição.

Comentários

Chame essa função para substituir uma ocorrência de um determinado texto por outra cadeia de caracteres. Substitua essa função para alterar as características de pesquisa nessa exibição.

CRichEditView::OnTextNotFound

Chamado pela estrutura sempre que uma pesquisa falha.

virtual void OnTextNotFound(LPCTSTR lpszFind);

Parâmetros

lpszFind
O texto que não foi encontrado.

Comentários

Substitua essa função para alterar a notificação de saída de um MessageBeep.

Para mais informações, confira MessageBeep no SDK do Windows.

Exemplo

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

CRichEditView::OnUpdateCharEffect

A estrutura chama essa função para atualizar a interface do usuário de comando para comandos de efeito de caractere.

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

Parâmetros

pCmdUI
Ponteiro para um objeto CCmdUI.

dwMask
Indica a máscara de formatação dos caracteres.

dwEffect
Indica o efeito de formatação dos caracteres.

Comentários

A máscara dwMask especifica quais atributos de formatação dos caracteres devem ser verificados. Os sinalizadores dwEffect listam os atributos de formatação dos caracteres a serem definidos/desmarcados.

Para obter mais informações sobre os parâmetros dwMask e dwEffect e seus valores potenciais, consulte os membros de dados correspondentes do CHARFORMAT no SDK do Windows.

Exemplo

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

CRichEditView::OnUpdateParaAlign

A estrutura chama essa função para atualizar a interface do usuário de comando para comandos de efeito do parágrafo.

void OnUpdateParaAlign(
    CCmdUI* pCmdUI,
    WORD wAlign);

Parâmetros

pCmdUI
Ponteiro para um objeto CCmdUI.

wAlign
O alinhamento do parágrafo a ser verificado. Um dos seguintes valores:

  • PFA_LEFT Alinha os parágrafos com a margem esquerda.

  • PFA_RIGHT Alinha os parágrafos com a margem direita.

  • PFA_CENTER Centraliza os parágrafos entre as margens.

Exemplo

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

CRichEditView::PrintInsideRect

Chame essa função para formatar um intervalo de texto em um controle de edição avançada para se ajustar no rectLayout para o dispositivo especificado pelo pDC.

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

Parâmetros

pDC
Ponteiro para um contexto de dispositivo para a área de saída.

rectLayout
RECT ou CRect que define a área de saída.

nIndexStart
Índice baseado em zero do primeiro caractere a ser formatado.

nIndexStop
Índice baseado em zero do último caractere a ser formatado.

bOutput
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 área de saída mais um.

Comentários

Normalmente, essa chamada é seguida por uma chamada para CRichEditCtrl::DisplayBand que gera a saída.

Exemplo

Consulte o exemplo de CRichEditView::GetPaperSize.

CRichEditView::PrintPage

Chame essa função para formatar um intervalo de texto em um controle de edição avançada para o dispositivo de saída especificado pelo pDC.

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

Parâmetros

pDC
Ponteiro para um contexto de dispositivo para saída da página.

nIndexStart
Índice baseado em zero do primeiro caractere a ser formatado.

nIndexStop
Índice baseado em zero do último caractere a ser formatado.

Valor de retorno

O índice do último caractere que se ajusta na página mais um.

Comentários

O layout de cada página é controlado por GetPageRect e GetPrintRect. Normalmente, essa chamada é seguida por uma chamada para CRichEditCtrl::DisplayBand que gera a saída.

Observe que as margens são relativas à página física, não à página lógica. Assim, as margens de zero geralmente recortarão o texto, pois muitas impressoras têm áreas não imprimíveis na página. Para evitar o recorte do texto, você deve chamar SetMargins e definir margens razoáveis antes de imprimir.

CRichEditView::QueryAcceptData

Chamado pela estrutura para colar um objeto na edição avançada.

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

Parâmetros

lpdataobj
Ponteiro para o IDataObject a ser consultado.

lpcfFormat
Ponteiro para o formato de dados aceitável.

dwReco
Não usado.

bReally
Indica se a operação de colagem deve continuar ou não.

hMetaFile
Um identificador do meta-arquivo usado para desenhar o ícone do item.

Valor de retorno

Um valor HRESULT relatando o sucesso da operação.

Comentários

Substitua essa função para manipular diferentes organizações de itens COM em sua classe de documento derivada. Essa é uma substituição avançada.

Para obter mais informações sobre HRESULT e IDataObject, consulte Estrutura de códigos de erro COM e IDataObject, respectivamente, no SDK do Windows.

Exemplo

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

CRichEditView::SetCharFormat

Chame essa função para definir os atributos de formatação de caracteres para o novo texto neste objeto CRichEditView.

void SetCharFormat(CHARFORMAT2 cf);

Parâmetros

cf
Estrutura CHARFORMAT2 que contém os novos atributos de formatação de caractere padrão.

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 a estrutura CHARFORMAT2 no SDK do Windows.

Exemplo

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

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

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

CRichEditView::SetMargins

Chame essa função para definir as margens de impressão para essa exibição de edição avançada.

void SetMargins(const CRect& rectMargin);

Parâmetros

rectMargin
Os novos valores da margem para impressão, medidos em MM_TWIPS.

Comentários

Se m_nWordWrap for WrapToTargetDevice, você deverá chamar WrapChanged depois de usar essa função para ajustar as características de impressão.

Observe que as margens usadas por PrintPage são relativas à página física, não à página lógica. Assim, as margens de zero geralmente recortarão o texto, pois muitas impressoras têm áreas não imprimíveis na página. Para evitar o recorte do texto, você deve chamar SetMargins para definir margens razoáveis da impressora antes de imprimir.

Exemplo

Consulte o exemplo de CRichEditView::GetPaperSize.

CRichEditView::SetPaperSize

Chame essa função para definir o tamanho do papel para impressão dessa exibição de edição avançada.

void SetPaperSize(CSize sizePaper);

Parâmetros

sizePaper
Os novos valores do tamanho do papel para impressão, medidos em MM_TWIPS.

Comentários

Se m_nWordWrap for WrapToTargetDevice, você deverá chamar WrapChanged depois de usar essa função para ajustar as características de impressão.

Exemplo

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

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

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

   return DoPreparePrinting(pInfo);
}

CRichEditView::SetParaFormat

Chame essa função para definir os atributos de formatação do parágrafo para a seleção atual neste objeto CRichEditView.

BOOL SetParaFormat(PARAFORMAT2& pf);

Parâmetros

pf
Estrutura PARAFORMAT2 que contém os novos atributos de formatação de parágrafo 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 a estrutura PARAFORMAT2 no SDK do Windows.

Exemplo

void CMyRichEditView::AddBullets()
{
   PARAFORMAT2 pf;

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

   VERIFY(SetParaFormat(pf));
}

CRichEditView::TextNotFound

Chame essa função para redefinir o estado de pesquisa interno do controle CRichEditView após uma chamada com falha para FindText.

void TextNotFound(LPCTSTR lpszFind);

Parâmetros

lpszFind
Contém a cadeia de caracteres de texto que não foi encontrada.

Comentários

É recomendável que esse método seja chamado imediatamente após chamadas com falha para FindText, para que o estado de pesquisa interna do controle seja redefinido corretamente.

O parâmetro lpszFind deve incluir o mesmo conteúdo que a cadeia de caracteres fornecida para FindText. Depois de redefinir o estado de pesquisa interna, esse método chamará o método OnTextNotFound com a cadeia de caracteres de pesquisa fornecida.

Exemplo

Consulte o exemplo de CRichEditView::FindText.

CRichEditView::WrapChanged

Chame essa função quando as características de impressão tiverem sido alteradas ( SetMargins ou SetPaperSize).

virtual void WrapChanged();

Comentários

Substitua essa função para modificar a forma como a exibição de edição avançada responde às alterações no m_nWordWrap ou às características de impressão (OnPrinterChanged).

Exemplo

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

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

Confira também

WORDPAD de exemplo do MFC
Classe CCtrlView
Gráfico da hierarquia
Classe CRichEditDoc
Classe CRichEditCntrItem