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 | Aggiorna l'interfaccia utente del comando per le funzioni membro pubbliche dei caratteri. |
CRichEditView::OnUpdateParaAlign | Aggiorna 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à
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 FALSE, 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 FALSE, 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.IDataObject
IRichEditOleCallback::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:
SEL_EMPTY Indica che non è presente alcuna selezione corrente.
SEL_TEXT Indica che la selezione corrente contiene testo.
SEL_OBJECT Indica che la selezione corrente contiene almeno un elemento OLE.
SEL_MULTICHAR Indica che la selezione corrente contiene più di un carattere di testo.
SEL_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; FALSO, 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 IStorage .
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 IStorage 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; FALSO, 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 FALSE, 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 EM_SETCHARFORMAT messaggio e CHARFORMAT2 struttura 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 EM_SETPARAFORMAT messaggio e PARAFORMAT2 struttura 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