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