Condividi tramite


Classe CRichEditView

Con CRichEditDoc e CRichEditCntrItem, fornisce la funzionalità del controllo di modifica avanzato all'interno del contesto dell'architettura di visualizzazione documenti di MFC.

Sintassi

class CRichEditView : public CCtrlView

Membri

Costruttori pubblici

Nome Descrizione
CRichEditView::CRichEditView Costruisce un oggetto CRichEditView.

Metodi pubblici

Nome Descrizione
CRichEditView::AdjustDialogPosition Sposta una finestra di dialogo in modo da non nascondere la selezione corrente.
CRichEditView::CanPaste Indica se gli Appunti contengono dati che possono essere incollati nella visualizzazione di modifica avanzata.
CRichEditView::D oPaste Incolla un elemento OLE in questa visualizzazione di modifica avanzata.
CRichEditView::FindText Trova il testo specificato, richiamando il cursore di attesa.
CRichEditView::FindTextSimple Trova il testo specificato.
CRichEditView::GetCharFormatSelection Recupera gli attributi di formattazione dei caratteri per la selezione corrente.
CRichEditView::GetDocument Recupera un puntatore al CRichEditDoc correlato.
CRichEditView::GetInPlaceActiveItem Recupera l'elemento OLE attualmente attivo nella visualizzazione di modifica avanzata.
CRichEditView::GetMargins Recupera i margini per questa visualizzazione di modifica avanzata.
CRichEditView::GetPageRect Recupera il rettangolo di pagina per questa visualizzazione di modifica avanzata.
CRichEditView::GetPaperSize Recupera le dimensioni della carta per questa visualizzazione di modifica avanzata.
CRichEditView::GetParaFormatSelection Recupera gli attributi di formattazione del paragrafo per la selezione corrente.
CRichEditView::GetPrintRect Recupera il rettangolo di stampa per questa visualizzazione di modifica avanzata.
CRichEditView::GetPrintWidth Recupera la larghezza di stampa per questa visualizzazione di modifica avanzata.
CRichEditView::GetRichEditCtrl Recupera il controllo rich edit.
CRichEditView::GetSelectedItem Recupera l'elemento selezionato dalla visualizzazione di modifica avanzata.
CRichEditView::GetTextLength Recupera la lunghezza del testo nella visualizzazione di modifica rtf.
CRichEditView::GetTextLengthEx Recupera il numero di caratteri o byte nella visualizzazione di modifica avanzata. Elenco di flag espanso per il metodo per determinare la lunghezza.
CRichEditView::InsertFileAsObject Inserisce un file come elemento OLE.
CRichEditView::InsertItem Inserisce un nuovo elemento come elemento OLE.
CRichEditView::IsRichEditFormat Indica se gli Appunti contengono dati in formato rtf o testo.
CRichEditView::OnCharEffect Attiva/disattiva la formattazione dei caratteri per la selezione corrente.
CRichEditView::OnParaAlign Modifica l'allineamento dei paragrafi.
CRichEditView::OnUpdateCharEffect Aggiornamenti l'interfaccia utente del comando per le funzioni membro pubbliche dei caratteri.
CRichEditView::OnUpdateParaAlign Aggiornamenti l'interfaccia utente del comando per le funzioni membro pubbliche del paragrafo.
CRichEditView::P rintInsideRect Formatta il testo specificato all'interno del rettangolo specificato.
CRichEditView::P rintPage Formatta il testo specificato all'interno della pagina specificata.
CRichEditView::SetCharFormat Imposta gli attributi di formattazione dei caratteri per la selezione corrente.
CRichEditView::SetMargins Imposta i margini per questa visualizzazione di modifica avanzata.
CRichEditView::SetPaperSize Imposta le dimensioni della carta per questa visualizzazione di modifica avanzata.
CRichEditView::SetParaFormat Imposta gli attributi di formattazione del paragrafo per la selezione corrente.
CRichEditView::TextNotFound Reimposta lo stato di ricerca interno del controllo.

Metodi protetti

Nome Descrizione
CRichEditView::GetClipboardData Recupera un oggetto Appunti per un intervallo in questa visualizzazione di modifica avanzata.
CRichEditView::GetContextMenu Recupera un menu di scelta rapida da utilizzare su un pulsante destro del mouse verso il basso.
CRichEditView::IsSelected Indica se l'elemento OLE specificato è selezionato o meno.
CRichEditView::OnFindNext Trova l'occorrenza successiva di una sottostringa.
CRichEditView::OnInitialUpdate Aggiorna una visualizzazione quando viene collegata per la prima volta a un documento.
CRichEditView::OnPasteNativeObject Recupera i dati nativi da un elemento OLE.
CRichEditView::OnPrinterChanged Imposta le caratteristiche di stampa sul dispositivo specificato.
CRichEditView::OnReplaceAll Sostituisce tutte le occorrenze di una determinata stringa con una nuova stringa.
CRichEditView::OnReplaceSel Sostituisce la selezione corrente.
CRichEditView::OnTextNotFound Gestisce la notifica dell'utente che il testo richiesto non è stato trovato.
CRichEditView::QueryAcceptData Query per visualizzare i dati in IDataObject.
CRichEditView::WrapChanged Regola il dispositivo di output di destinazione per questa visualizzazione di modifica avanzata, in base al valore di m_nWordWrap.

Membri dati pubblici

Nome Descrizione
CRichEditView::m_nBulletIndent Indica la quantità di rientro per gli elenchi puntati.
CRichEditView::m_nWordWrap Indica i vincoli di ritorno a capo automatico.

Osservazioni:

Un "controllo di modifica avanzato" è una finestra in cui l'utente può immettere e modificare il testo. Il testo può essere assegnato a caratteri e formattazione di paragrafo e può includere oggetti OLE incorporati. I controlli rich edit forniscono un'interfaccia di programmazione per la formattazione del testo. Tuttavia, un'applicazione deve implementare tutti i componenti dell'interfaccia utente necessari per rendere disponibili all'utente le operazioni di formattazione.

CRichEditView mantiene la caratteristica di testo e formattazione del testo. CRichEditDoc gestisce l'elenco di elementi client OLE presenti nella visualizzazione. CRichEditCntrItem fornisce l'accesso sul lato contenitore all'elemento client OLE.

Questo controllo Comune di Windows (e pertanto le classi CRichEditCtrl e correlate) è disponibile solo per i programmi in esecuzione in Windows 95/98 e Windows NT versioni 3.51 e successive.

Per un esempio di uso di una visualizzazione di modifica avanzata in un'applicazione MFC, vedere l'applicazione di esempio WORDPAD .

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CView

CCtrlView

CRichEditView

Requisiti

Intestazione: afxrich.h

CRichEditView::AdjustDialogPosition

Chiamare questa funzione per spostare la finestra di dialogo specificata in modo da non nascondere la selezione corrente.

void AdjustDialogPosition(CDialog* pDlg);

Parametri

pDlg
Puntatore a un oggetto CDialog.

CRichEditView::CanPaste

Chiamare questa funzione per determinare se gli Appunti contengono informazioni che possono essere incollate in questa visualizzazione di modifica avanzata.

BOOL CanPaste() const;

Valore restituito

Diverso da zero se gli Appunti contengono dati in un formato che questa visualizzazione di modifica avanzata può accettare; in caso contrario, 0.

CRichEditView::CRichEditView

Chiamare questa funzione per creare un CRichEditView oggetto .

CRichEditView();

CRichEditView::D oPaste

Chiamare questa funzione per incollare l'elemento OLE in dataobj in questo documento/visualizzazione rtf.

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

Parametri

dataobj
Oggetto COleDataObject contenente i dati da incollare.

Cfr
Formato degli Appunti desiderato.

hMetaPict
Metafile che rappresenta l'elemento da incollare.

Osservazioni:

Il framework chiama questa funzione come parte dell'implementazione predefinita di QueryAcceptData.

Questa funzione determina il tipo di incolla in base ai risultati del gestore per Incolla speciale. Se cf è 0, il nuovo elemento usa la rappresentazione iconica corrente. Se cf è diverso da zero e hMetaPict non è NULL, il nuovo elemento usa hMetaPict per la relativa rappresentazione.

CRichEditView::FindText

Chiamare questa funzione per trovare il testo specificato e impostarlo come selezione corrente.

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

Parametri

lpszFind
Contiene la stringa da cercare.

bCase
Indica se la ricerca fa distinzione tra maiuscole e minuscole.

bWord
Indica se la ricerca deve corrispondere solo a parole intere, non a parti di parole.

bNext
Indica la direzione della ricerca. Se TRUE, la direzione di ricerca è verso la fine del buffer. Se FAL edizione Standard, la direzione di ricerca è verso l'inizio del buffer.

Valore restituito

Diverso da zero se viene trovato il testo lpszFind ; in caso contrario, 0.

Osservazioni:

Questa funzione visualizza il cursore di attesa durante l'operazione di ricerca.

Esempio

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

Chiamare questa funzione per trovare il testo specificato e impostarlo come selezione corrente.

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

Parametri

lpszFind
Contiene la stringa da cercare.

bCase
Indica se la ricerca fa distinzione tra maiuscole e minuscole.

bWord
Indica se la ricerca deve corrispondere solo a parole intere, non a parti di parole.

bNext
Indica la direzione della ricerca. Se TRUE, la direzione di ricerca è verso la fine del buffer. Se FAL edizione Standard, la direzione di ricerca è verso l'inizio del buffer.

Valore restituito

Diverso da zero se viene trovato il testo lpszFind ; in caso contrario, 0.

Esempio

Vedere l'esempio per CRichEditView::FindText.

CRichEditView::GetCharFormatSelection

Chiamare questa funzione per ottenere gli attributi di formattazione dei caratteri della selezione corrente.

CHARFORMAT2& GetCharFormatSelection();

Valore restituito

Struttura CHARFORMAT2 che contiene gli attributi di formattazione dei caratteri della selezione corrente.

Osservazioni:

Per altre informazioni, vedere il messaggio di EM_GETCHARFORMAT e la struttura CHARFORMAT2 in Windows SDK.

Esempio

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

Il framework chiama questa funzione come parte dell'elaborazione di IRichEditOleCallback::GetClipboardData.

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

Parametri

lpchrg
Puntatore alla struttura CHARRANGE che specifica l'intervallo di caratteri (e elementi OLE) da copiare nell'oggetto dati specificato da lplpdataobj.

dwReco
Flag dell'operazione Degli Appunti. Può essere uno di questi valori.

  • RECO_COPY Copia negli Appunti.

  • RECO_CUT Tagliare negli Appunti.

  • RECO_DRAG operazione di trascinamento (trascinamento della selezione).

  • RECO_DROP'operazione drop (trascinamento della selezione).

  • RECO_PASTE Incolla dagli Appunti.

lpRichDataObj
Puntatore a un oggetto IDataObject contenente i dati degli Appunti dal controllo rich edit ( IRichEditOle::GetClipboardData).

lplpdataobj
Puntatore alla variabile puntatore che riceve l'indirizzo dell'oggetto IDataObject che rappresenta l'intervallo specificato nel parametro lpchrg . Il valore di lplpdataobj viene ignorato se viene restituito un errore.

Valore restituito

Valore HRESULT che segnala l'esito positivo dell'operazione. Per altre informazioni su HRESULT, vedere Struttura dei codici di errore COM in Windows SDK.

Osservazioni:

Se il valore restituito indica l'esito positivo, restituisce l'oggetto accessibile da lplpdataobj; in caso contrario, restituisce quello a cui accede lpRichDataObj.IDataObjectIRichEditOleCallback::GetClipboardData Eseguire l'override di questa funzione per fornire i propri dati degli Appunti. L'implementazione predefinita di questa funzione restituisce E_NOTIMPL.

Si tratta di un override avanzato.

Per altre informazioni, vedere IRichEditOle::GetClipboardData, IRichEditOleCallback::GetClipboardData e CHARRANGE in Windows SDK e vedere IDataObject in Windows SDK.

CRichEditView::GetContextMenu

Il framework chiama questa funzione come parte dell'elaborazione di IRichEditOleCallback::GetContextMenu.

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

Parametri

seltyp
Tipo di selezione. I valori del tipo di selezione sono descritti nella sezione Osservazioni.

lpoleobj
Puntatore a una OLEOBJECT struttura che specifica il primo oggetto OLE selezionato se la selezione contiene uno o più elementi OLE. Se la selezione non contiene elementi, lpoleobj è NULL. La OLEOBJECT struttura contiene un puntatore a una tabella virtuale oggetto OLE.

lpchrg
Puntatore a una struttura CHARRANGE contenente la selezione corrente.

Valore restituito

Handle per il menu di scelta rapida.

Osservazioni:

Questa funzione è una parte tipica dell'elaborazione del pulsante destro del mouse verso il basso.

Il tipo di selezione può essere qualsiasi combinazione dei flag seguenti:

  • edizione StandardL_EMPTY Indica che non è presente alcuna selezione corrente.

  • edizione StandardL_TEXT Indica che la selezione corrente contiene testo.

  • edizione StandardL_OBJECT Indica che la selezione corrente contiene almeno un elemento OLE.

  • edizione StandardL_MULTICHAR Indica che la selezione corrente contiene più di un carattere di testo.

  • edizione StandardL_MULTIOBJECT Indica che la selezione corrente contiene più oggetti OLE.

L'implementazione predefinita restituisce NULL. Si tratta di un override avanzato.

Per altre informazioni, vedere IRichEditOleCallback::GetContextMenu e CHARRANGE in Windows SDK.

CRichEditView::GetDocument

Chiamare questa funzione per ottenere un puntatore all'oggetto CRichEditDoc associato a questa visualizzazione.

CRichEditDoc* GetDocument() const;

Valore restituito

Puntatore a un oggetto CRichEditDoc associato all'oggetto CRichEditView .

CRichEditView::GetInPlaceActiveItem

Chiamare questa funzione per ottenere l'elemento OLE attualmente attivato in questo CRichEditView oggetto.

CRichEditCntrItem* GetInPlaceActiveItem() const;

Valore restituito

Puntatore al singolo oggetto CRichEditCntrItem attivo sul posto in questa visualizzazione di modifica avanzata; NULL se non è attualmente presente alcun elemento OLE nello stato attivo sul posto.

CRichEditView::GetMargins

Chiamare questa funzione per recuperare i margini correnti utilizzati nella stampa.

CRect GetMargins() const;

Valore restituito

Margini utilizzati nella stampa, misurati in MM_TWIPS.

CRichEditView::GetPageRect

Chiamare questa funzione per ottenere le dimensioni della pagina utilizzata nella stampa.

CRect GetPageRect() const;

Valore restituito

Limiti della pagina utilizzata per la stampa, misurata in MM_TWIPS.

Osservazioni:

Questo valore è basato sul formato carta.

CRichEditView::GetPaperSize

Chiamare questa funzione per recuperare il formato carta corrente.

CSize GetPaperSize() const;

Valore restituito

Dimensione della carta utilizzata nella stampa, misurata in MM_TWIPS.

Esempio

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

Chiamare questa funzione per ottenere gli attributi di formattazione del paragrafo della selezione corrente.

PARAFORMAT2& GetParaFormatSelection();

Valore restituito

Struttura PARAFORMAT2 che contiene gli attributi di formattazione del paragrafo della selezione corrente.

Osservazioni:

Per altre informazioni, vedere EM_GETPARAFORMAT messaggio e PARAFORMAT2 struttura in Windows SDK.

CRichEditView::GetPrintRect

Chiamare questa funzione per recuperare i limiti dell'area di stampa all'interno del rettangolo di pagina.

CRect GetPrintRect() const;

Valore restituito

Limiti dell'area dell'immagine utilizzata per la stampa, misurata in MM_TWIPS.

Esempio

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

Chiamare questa funzione per determinare la larghezza dell'area di stampa.

int GetPrintWidth() const;

Valore restituito

Larghezza dell'area di stampa, misurata in MM_TWIPS.

CRichEditView::GetRichEditCtrl

Chiamare questa funzione per recuperare l'oggetto CRichEditCtrl associato all'oggetto CRichEditView .

CRichEditCtrl& GetRichEditCtrl() const;

Valore restituito

Oggetto CRichEditCtrl per questa visualizzazione.

Esempio

Vedere l'esempio per CRichEditView::FindText.

CRichEditView::GetSelectedItem

Chiamare questa funzione per recuperare l'elemento OLE (un CRichEditCntrItem oggetto) attualmente selezionato in questo CRichEditView oggetto.

CRichEditCntrItem* GetSelectedItem() const;

Valore restituito

Puntatore a un oggetto CRichEditCntrItem selezionato nell'oggetto CRichEditView ; NULL se non è selezionato alcun elemento in questa visualizzazione.

CRichEditView::GetTextLength

Chiamare questa funzione per recuperare la lunghezza del testo in questo CRichEditView oggetto.

long GetTextLength() const;

Valore restituito

Lunghezza del testo in questo CRichEditView oggetto.

CRichEditView::GetTextLengthEx

Chiamare questa funzione membro per calcolare la lunghezza del testo in questo CRichEditView oggetto.

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

Parametri

dwFlags
Valore che specifica il metodo da utilizzare per determinare la lunghezza del testo. Questo membro può essere uno o più dei valori elencati nel membro flag di GETTEXTLENGTHEX descritto in Windows SDK.

uCodePage
Tabella codici per la traduzione (CP_ACP per tabella codici ANSI, 1200 per Unicode).

Valore restituito

Numero di caratteri o byte nel controllo di modifica. Se i flag incompatibili sono stati impostati in dwFlags, questa funzione membro restituisce E_INVALIDARG.

Osservazioni:

GetTextLengthEx fornisce altri modi per determinare la lunghezza del testo. Supporta la funzionalità Rich Edit 2.0. Per altre informazioni, vedere Informazioni sui controlli Rich Edit in Windows SDK.

CRichEditView::InsertFileAsObject

Chiamare questa funzione per inserire il file specificato (come oggetto CRichEditCntrItem ) in una visualizzazione di modifica avanzata.

void InsertFileAsObject(LPCTSTR lpszFileName);

Parametri

lpszFileName
Stringa contenente il nome del file da inserire.

CRichEditView::InsertItem

Chiamare questa funzione per inserire un oggetto CRichEditCntrItem in una visualizzazione di modifica avanzata.

HRESULT InsertItem(CRichEditCntrItem* pItem);

Parametri

pItem
Puntatore all'elemento da inserire.

Valore restituito

Valore HRESULT che indica l'esito positivo dell'inserimento.

Osservazioni:

Per altre informazioni su HRESULT, vedere Struttura dei codici di errore COM in Windows SDK.

CRichEditView::IsRichEditFormat

Chiamare questa funzione per determinare se cf è un formato degli Appunti, ovvero testo, RTF o RTF con elementi OLE.

static BOOL AFX_CDECL IsRichEditFormat(CLIPFORMAT cf);

Parametri

Cfr
Formato degli Appunti di interesse.

Valore restituito

Diverso da zero se cf è un formato rtf o appunti di testo.

CRichEditView::IsSelected

Chiamare questa funzione per determinare se l'elemento OLE specificato è attualmente selezionato in questa visualizzazione.

virtual BOOL IsSelected(const CObject* pDocItem) const;

Parametri

pDocItem
Puntatore a un oggetto nella visualizzazione.

Valore restituito

Diverso da zero se l'oggetto è selezionato; in caso contrario, 0.

Osservazioni:

Eseguire l'override di questa funzione se la classe di visualizzazione derivata ha un metodo diverso per la gestione della selezione di elementi OLE.

CRichEditView::m_nBulletIndent

Rientro per gli elementi puntati in un elenco; per impostazione predefinita, 720 unità, ovvero 1/2 pollici.

int m_nBulletIndent;

CRichEditView::m_nWordWrap

Indica il tipo di ritorno a capo automatico per questa visualizzazione di modifica avanzata.

int m_nWordWrap;

Osservazioni:

Uno dei valori seguenti:

  • WrapNone Indica che non viene eseguito il wrapping automatico delle parole.

  • WrapToWindow Indica il ritorno a capo automatico in base alla larghezza della finestra.

  • WrapToTargetDevice Indica il ritorno a capo automatico in base alle caratteristiche del dispositivo di destinazione.

Esempio

Vedere l'esempio per CRichEditView::WrapChanged.

CRichEditView::OnCharEffect

Chiamare questa funzione per attivare o disattivare gli effetti di formattazione dei caratteri per la selezione corrente.

void OnCharEffect(
    DWORD dwMask,
    DWORD dwEffect);

Parametri

dwMask
Effetti di formattazione dei caratteri da modificare nella selezione corrente.

dwEffect
Elenco desiderato di effetti di formattazione dei caratteri da attivare o disattivare.

Osservazioni:

Ogni chiamata a questa funzione attiva/disattiva gli effetti di formattazione specificati per la selezione corrente.

Per altre informazioni sui parametri dwMask e dwEffect e sui relativi valori potenziali, vedere i membri dati corrispondenti di CHARFORMAT in Windows SDK.

Esempio

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

CRichEditView::OnFindNext

Chiamato dal framework durante l'elaborazione dei comandi dalla finestra di dialogo Trova/Sostituisci.

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

Parametri

lpszFind
Stringa da trovare.

bNext
Direzione di ricerca: TRUE indica verso il basso; FAL edizione Standard, su.

bCase
Indica se la ricerca deve essere fatta distinzione tra maiuscole e minuscole.

bWord
Indica se la ricerca deve corrispondere solo a parole intere o meno.

Osservazioni:

Chiamare questa funzione per trovare il testo all'interno di CRichEditView. Eseguire l'override di questa funzione per modificare le caratteristiche di ricerca per la classe di visualizzazione derivata.

CRichEditView::OnInitialUpdate

Chiamato dal framework dopo che la vista è stata collegata per la prima volta al documento, ma prima della visualizzazione viene inizialmente visualizzata.

virtual void OnInitialUpdate();

Osservazioni:

L'implementazione predefinita di questa funzione chiama la funzione membro CView::OnUpdate senza informazioni di hint, ovvero usando i valori predefiniti 0 per il parametro lHint e NULL per il parametro pHint . Eseguire l'override di questa funzione per eseguire un'inizializzazione monouso che richiede informazioni sul documento. Ad esempio, se l'applicazione dispone di documenti di dimensioni fisse, è possibile usare questa funzione per inizializzare i limiti di scorrimento di una visualizzazione in base alle dimensioni del documento. Se l'applicazione supporta documenti di dimensioni variabili, usare OnUpdate per aggiornare i limiti di scorrimento ogni volta che il documento cambia.

Esempio

Vedere l'esempio per CRichEditView::m_nWordWrap.

CRichEditView::OnPasteNativeObject

Usare questa funzione per caricare dati nativi da un elemento incorporato.

virtual BOOL OnPasteNativeObject(LPSTORAGE lpStg);

Parametri

lpStg
Puntatore a un oggetto I Archiviazione.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario, 0;

Osservazioni:

In genere, è possibile eseguire questa operazione creando un oggetto COleStreamFile intorno a IStorage. COleStreamFile Può essere collegato a un archivio e a CObject::Serialize chiamato per caricare i dati.

Si tratta di un override avanzato.

Per altre informazioni, vedere I Archiviazione in Windows SDK.

CRichEditView::OnParaAlign

Chiamare questa funzione per modificare l'allineamento del paragrafo per i paragrafi selezionati.

void OnParaAlign(WORD wAlign);

Parametri

wAlign
Allineamento del paragrafo desiderato. Uno dei valori seguenti:

  • PFA_LEFT Allineare i paragrafi al margine sinistro.

  • PFA_RIGHT Allineare i paragrafi al margine destro.

  • PFA_CENTER Centra i paragrafi tra i margini.

Esempio

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

CRichEditView::OnPrinterChanged

Eseguire l'override di questa funzione per modificare le caratteristiche di questa visualizzazione di modifica avanzata quando cambia la stampante.

virtual void OnPrinterChanged(const CDC& dcPrinter);

Parametri

dcPrinter
Oggetto CDC per la nuova stampante.

Osservazioni:

L'implementazione predefinita imposta le dimensioni della carta sull'altezza fisica e sulla larghezza per il dispositivo di output (stampante). Se non esiste alcun contesto di dispositivo associato a dcPrinter, l'implementazione predefinita imposta le dimensioni della carta su 8,5 di 11 pollici.

CRichEditView::OnReplaceAll

Chiamato dal framework durante l'elaborazione dei comandi Sostituisci tutti dalla finestra di dialogo Sostituisci.

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

Parametri

lpszFind
Testo da sostituire.

lpszReplace
Testo sostitutivo.

bCase
Indica se la ricerca fa distinzione tra maiuscole e minuscole.

bWord
Indica se la ricerca deve selezionare o meno parole intere.

Osservazioni:

Chiamare questa funzione per sostituire tutte le occorrenze di un determinato testo con un'altra stringa. Eseguire l'override di questa funzione per modificare le caratteristiche di ricerca per questa visualizzazione.

Esempio

Vedere l'esempio per CRichEditView::FindText.

CRichEditView::OnReplaceSel

Chiamato dal framework durante l'elaborazione dei comandi Sostituisci dalla finestra di dialogo Sostituisci.

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

Parametri

lpszFind
Testo da sostituire.

bNext
Indica la direzione della ricerca: TRUE è inattiva; FAL edizione Standard, su.

bCase
Indica se la ricerca fa distinzione tra maiuscole e minuscole.

bWord
Indica se la ricerca deve selezionare o meno parole intere.

lpszReplace
Testo sostitutivo.

Osservazioni:

Chiamare questa funzione per sostituire un'occorrenza di un determinato testo con un'altra stringa. Eseguire l'override di questa funzione per modificare le caratteristiche di ricerca per questa visualizzazione.

CRichEditView::OnTextNotFound

Chiamato dal framework ogni volta che una ricerca ha esito negativo.

virtual void OnTextNotFound(LPCTSTR lpszFind);

Parametri

lpszFind
Testo non trovato.

Osservazioni:

Eseguire l'override di questa funzione per modificare la notifica di output da messageBeep.

Per altre informazioni, vedere MessageBeep in Windows SDK.

Esempio

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

Il framework chiama questa funzione per aggiornare l'interfaccia utente del comando per i comandi dell'effetto carattere.

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

Parametri

pCmdUI
Puntatore a un oggetto CCmdUI .

dwMask
Indica la maschera di formattazione dei caratteri.

dwEffect
Indica l'effetto di formattazione dei caratteri.

Osservazioni:

La maschera dwMask specifica gli attributi di formattazione dei caratteri da controllare. I flag dwEffect elencano gli attributi di formattazione dei caratteri da impostare/cancellare.

Per altre informazioni sui parametri dwMask e dwEffect e sui relativi valori potenziali, vedere i membri dati corrispondenti di CHARFORMAT in Windows SDK.

Esempio

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

CRichEditView::OnUpdateParaAlign

Il framework chiama questa funzione per aggiornare l'interfaccia utente del comando per i comandi degli effetti di paragrafo.

void OnUpdateParaAlign(
    CCmdUI* pCmdUI,
    WORD wAlign);

Parametri

pCmdUI
Puntatore a un oggetto CCmdUI .

wAlign
Allineamento del paragrafo da controllare. Uno dei valori seguenti:

  • PFA_LEFT Allineare i paragrafi al margine sinistro.

  • PFA_RIGHT Allineare i paragrafi al margine destro.

  • PFA_CENTER Centra i paragrafi tra i margini.

Esempio

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

CRichEditView::P rintInsideRect

Chiamare questa funzione per formattare un intervallo di testo in un controllo di modifica rtf per adattarsi all'interno di rectLayout per il dispositivo specificato da pDC.

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

Parametri

pDC
Puntatore a un contesto di dispositivo per l'area di output.

rectLayout
RECT o CRect che definisce l'area di output.

nIndexStart
Indice in base zero del primo carattere da formattare.

nIndexStop
Indice in base zero dell'ultimo carattere da formattare.

bOutput
Indica se è necessario eseguire il rendering del testo. Se FAL edizione Standard, il testo viene appena misurato.

Valore restituito

Indice dell'ultimo carattere che rientra nell'area di output più uno.

Osservazioni:

In genere, questa chiamata viene seguita da una chiamata a CRichEditCtrl::D isplayBand che genera l'output.

Esempio

Vedere l'esempio per CRichEditView::GetPaperSize.

CRichEditView::P rintPage

Chiamare questa funzione per formattare un intervallo di testo in un controllo di modifica rtf per il dispositivo di output specificato da pDC.

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

Parametri

pDC
Puntatore a un contesto di dispositivo per l'output della pagina.

nIndexStart
Indice in base zero del primo carattere da formattare.

nIndexStop
Indice in base zero dell'ultimo carattere da formattare.

Valore restituito

Indice dell'ultimo carattere che si adatta alla pagina più uno.

Osservazioni:

Il layout di ogni pagina è controllato da GetPageRect e GetPrintRect. In genere, questa chiamata viene seguita da una chiamata a CRichEditCtrl::D isplayBand che genera l'output.

Si noti che i margini sono relativi alla pagina fisica, non alla pagina logica. Pertanto, i margini di zero spesso ritaglieranno il testo perché molte stampanti hanno aree non stampabili nella pagina. Per evitare di ritagliare il testo, è necessario chiamare SetMargins e impostare margini ragionevoli prima della stampa.

CRichEditView::QueryAcceptData

Chiamato dal framework per incollare un oggetto nella modifica avanzata.

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

Parametri

lpdataobj
Puntatore all'oggetto IDataObject su cui eseguire la query.

lpcfFormat
Puntatore al formato dati accettabile.

dwReco
Non utilizzato.

bReally
Indica se l'operazione incolla deve continuare o meno.

hMetaFile
Handle del metafile utilizzato per disegnare l'icona dell'elemento.

Valore restituito

Valore HRESULT che segnala l'esito positivo dell'operazione.

Osservazioni:

Eseguire l'override di questa funzione per gestire diverse organizzazioni di elementi COM nella classe documento derivata. Si tratta di un override avanzato.

Per altre informazioni su HRESULT e IDataObject, vedere Struttura dei codici di errore COM e IDataObject, rispettivamente, in Windows SDK.

Esempio

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

Chiamare questa funzione per impostare gli attributi di formattazione dei caratteri per il nuovo testo in questo CRichEditView oggetto.

void SetCharFormat(CHARFORMAT2 cf);

Parametri

Cfr
CHARFORMAT2 struttura contenente i nuovi attributi di formattazione dei caratteri predefiniti.

Osservazioni:

Solo gli attributi specificati dal dwMask membro di cf vengono modificati da questa funzione.

Per altre informazioni, vedere il messaggio EM_edizione Standard TCHARFORMAT e la struttura CHARFORMAT2 in Windows SDK.

Esempio

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

Chiamare questa funzione per impostare i margini di stampa per questa visualizzazione di modifica avanzata.

void SetMargins(const CRect& rectMargin);

Parametri

rectMargin
Nuovi valori di margine per la stampa, misurati in MM_TWIPS.

Osservazioni:

Se m_nWordWrap è WrapToTargetDevice, è necessario chiamare WrapChanged dopo aver usato questa funzione per regolare le caratteristiche di stampa.

Si noti che i margini utilizzati da PrintPage sono relativi alla pagina fisica, non alla pagina logica. Pertanto, i margini di zero spesso ritaglieranno il testo perché molte stampanti hanno aree non stampabili nella pagina. Per evitare di ritagliare il testo, è consigliabile chiamare l'uso SetMargins per impostare margini ragionevoli della stampante prima della stampa.

Esempio

Vedere l'esempio per CRichEditView::GetPaperSize.

CRichEditView::SetPaperSize

Chiamare questa funzione per impostare il formato carta per la stampa di questa visualizzazione di modifica avanzata.

void SetPaperSize(CSize sizePaper);

Parametri

sizePaper
Nuovi valori di formato carta per la stampa, misurati in MM_TWIPS.

Osservazioni:

Se m_nWordWrap è WrapToTargetDevice, è necessario chiamare WrapChanged dopo aver usato questa funzione per regolare le caratteristiche di stampa.

Esempio

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

Chiamare questa funzione per impostare gli attributi di formattazione del paragrafo per la selezione corrente in questo CRichEditView oggetto.

BOOL SetParaFormat(PARAFORMAT2& pf);

Parametri

pf
PARAFORMAT2 struttura contenente i nuovi attributi di formattazione dei paragrafi predefiniti.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario, 0.

Osservazioni:

Solo gli attributi specificati dal dwMask membro di pf vengono modificati da questa funzione.

Per altre informazioni, vedere messaggio EM_edizione Standard TPARAFORMAT e struttura PARAFORMAT2 in Windows SDK.

Esempio

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

Chiamare questa funzione per reimpostare lo stato di ricerca interno del controllo CRichEditView dopo una chiamata non riuscita a FindText.

void TextNotFound(LPCTSTR lpszFind);

Parametri

lpszFind
Contiene la stringa di testo non trovata.

Osservazioni:

È consigliabile chiamare questo metodo immediatamente dopo le chiamate non riuscite a FindText in modo che lo stato di ricerca interno del controllo venga reimpostato correttamente.

Il parametro lpszFind deve includere lo stesso contenuto della stringa fornita a FindText. Dopo aver reimpostato lo stato di ricerca interno, questo metodo chiamerà il metodo OnTextNotFound con la stringa di ricerca specificata.

Esempio

Vedere l'esempio per CRichEditView::FindText.

CRichEditView::WrapChanged

Chiamare questa funzione quando le caratteristiche di stampa sono state modificate ( SetMargins o SetPaperSize).

virtual void WrapChanged();

Osservazioni:

Eseguire l'override di questa funzione per modificare il modo in cui la visualizzazione di modifica avanzata risponde alle modifiche in m_nWordWrap o alle caratteristiche di stampa ( OnPrinterChanged).

Esempio

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

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

Vedi anche

WORDPAD di esempio MFC
Classe CCtrlView
Grafico della gerarchia
Classe CRichEditDoc
Classe CRichEditCntrItem