CRichEditView – třída
S CRichEditDoc a CRichEditCntrItem poskytuje funkce bohatého ovládacího prvku pro úpravy v kontextu architektury zobrazení dokumentů MFC.
Syntaxe
class CRichEditView : public CCtrlView
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CRichEditView::CRichEditView | CRichEditView Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CRichEditView::AdjustDialogPosition | Přesune dialogové okno tak, aby nepřekrylo aktuální výběr. |
CRichEditView::CanPaste | Určuje, jestli schránka obsahuje data, která lze vložit do zobrazení pro úpravy s formátovaným obsahem. |
CRichEditView::D oPaste | Vloží položku OLE do tohoto bohatého zobrazení pro úpravy. |
CRichEditView::FindText | Najde zadaný text, který vyvolá kurzor čekání. |
CRichEditView::FindTextSimple | Najde zadaný text. |
CRichEditView::GetCharFormatSelection | Načte atributy formátování znaků pro aktuální výběr. |
CRichEditView::GetDocument | Načte ukazatel na související CRichEditDoc. |
CRichEditView::GetInPlaceActiveItem | Načte položku OLE, která je aktuálně aktivní v zobrazení pro úpravy s formátem. |
CRichEditView::GetMargins | Načte okraje pro toto bohaté zobrazení pro úpravy. |
CRichEditView::GetPageRect | Načte obdélník stránky pro toto bohaté zobrazení pro úpravy. |
CRichEditView::GetPaperSize | Načte formát papíru pro toto bohaté zobrazení pro úpravy. |
CRichEditView::GetParaFormatSelection | Načte atributy formátování odstavce pro aktuální výběr. |
CRichEditView::GetPrintRect | Načte obdélník tisku pro toto zobrazení pro úpravy s formátem. |
CRichEditView::GetPrintWidth | Načte šířku tisku pro toto bohaté zobrazení pro úpravy. |
CRichEditView::GetRichEditCtrl | Načte ovládací prvek pro úpravy s formátem. |
CRichEditView::GetSelectedItem | Načte vybranou položku ze zobrazení pro úpravy s formátem. |
CRichEditView::GetTextLength | Načte délku textu v zobrazení pro úpravy s formátováním. |
CRichEditView::GetTextLengthEx | Načte počet znaků nebo bajtů v zobrazení pro úpravy s formátem. Rozbalený seznam příznaků pro metodu určení délky. |
CRichEditView::InsertFileAsObject | Vloží soubor jako položku OLE. |
CRichEditView::InsertItem | Vloží novou položku jako položku OLE. |
CRichEditView::IsRichEditFormat | Určuje, jestli schránka obsahuje data v formátovaného formátu pro úpravy nebo text. |
CRichEditView::OnCharEffect | Přepíná formátování znaků pro aktuální výběr. |
CRichEditView::OnParaAlign | Změní zarovnání odstavců. |
CRichEditView::OnUpdateCharEffect | Aktualizuje uživatelské rozhraní příkazů pro funkce veřejného člena znaku. |
CRichEditView::OnUpdateParaAlign | Aktualizuje uživatelské rozhraní příkazů pro veřejné členské funkce odstavce. |
CRichEditView::P rintInsideRect | Naformátuje zadaný text v daném obdélníku. |
CRichEditView::P rintPage | Naformátuje zadaný text na dané stránce. |
CRichEditView::SetCharFormat | Nastaví atributy formátování znaků pro aktuální výběr. |
CRichEditView::SetMargins | Nastaví okraje pro toto bohaté zobrazení pro úpravy. |
CRichEditView::SetPaperSize | Nastaví formát papíru pro toto bohaté zobrazení pro úpravy. |
CRichEditView::SetParaFormat | Nastaví atributy formátování odstavce pro aktuální výběr. |
CRichEditView::TextNotFound | Obnoví stav interního vyhledávání ovládacího prvku. |
Chráněné metody
Název | Popis |
---|---|
CRichEditView::GetClipboardData | Načte objekt schránky pro oblast v tomto zobrazení pro úpravy s formátem. |
CRichEditView::GetContextMenu | Načte místní nabídku, která se použije na pravém tlačítku myši dolů. |
CRichEditView::IsSelected | Označuje, zda je daná položka OLE vybrána nebo není. |
CRichEditView::OnFindNext | Najde další výskyt podřetětěce. |
CRichEditView::OnInitialUpdate | Aktualizuje zobrazení při prvním připojení k dokumentu. |
CRichEditView::OnPasteNativeObject | Načte nativní data z položky OLE. |
CRichEditView::OnPrinterChanged | Nastaví vlastnosti tisku na dané zařízení. |
CRichEditView::OnReplaceAll | Nahradí všechny výskyty daného řetězce novým řetězcem. |
CRichEditView::OnReplaceSel | Nahradí aktuální výběr. |
CRichEditView::OnTextNotFound | Zpracovává oznámení uživatele, že požadovaný text nebyl nalezen. |
CRichEditView::QueryAcceptData | Dotazy, které se mají zobrazit o datech v souboru IDataObject . |
CRichEditView::WrapChanged | Upraví cílové výstupní zařízení pro toto bohaté zobrazení pro úpravy na základě hodnoty m_nWordWrap . |
Veřejné datové členy
Název | Popis |
---|---|
CRichEditView::m_nBulletIndent | Určuje velikost odsazení seznamů odrážek. |
CRichEditView::m_nWordWrap | Označuje omezení zalamování slov. |
Poznámky
"Ovládací prvek pro úpravy s formátováním" je okno, ve kterém může uživatel zadat a upravit text. Text může mít přiřazené formátování znaků a odstavců a může obsahovat vložené objekty OLE. Ovládací prvky pro úpravy s formátováním poskytují programovací rozhraní pro formátování textu. Aplikace však musí implementovat všechny součásti uživatelského rozhraní nezbytné k tomu, aby byly pro uživatele k dispozici operace formátování.
CRichEditView
udržuje text a formátování charakteristické pro text. CRichEditDoc
udržuje seznam položek klienta OLE, které jsou v zobrazení. CRichEditCntrItem
poskytuje přístup na straně kontejneru k položce klienta OLE.
Tento běžný ovládací prvek systému Windows (a proto CRichEditCtrl a související třídy) je k dispozici pouze pro programy spuštěné v systému Windows 95/98 a systém Windows NT verze 3.51 a novější.
Příklad použití bohatého zobrazení pro úpravy v aplikaci MFC naleznete v ukázkové aplikaci WORDPAD .
Hierarchie dědičnosti
CRichEditView
Požadavky
Záhlaví: afxrich.h
CRichEditView::AdjustDialogPosition
Voláním této funkce přesunete dané dialogové okno tak, aby nepřekrylo aktuální výběr.
void AdjustDialogPosition(CDialog* pDlg);
Parametry
pDlg
Ukazatel na CDialog
objekt.
CRichEditView::CanPaste
Voláním této funkce určíte, jestli schránka obsahuje informace, které lze vložit do tohoto zobrazení pro úpravy s formátovaným obsahem.
BOOL CanPaste() const;
Návratová hodnota
Nenulové, pokud schránka obsahuje data ve formátu, který může toto zobrazení pro úpravy s formátováním přijmout; jinak, 0.
CRichEditView::CRichEditView
Voláním této funkce vytvoříte CRichEditView
objekt.
CRichEditView();
CRichEditView::D oPaste
Voláním této funkce vložíte položku OLE v dataobj do tohoto bohatého dokumentu nebo zobrazení pro úpravy.
void DoPaste(
COleDataObject& dataobj,
CLIPFORMAT cf,
HMETAFILEPICT hMetaPict);
Parametry
dataobj
Objekt COleDataObject obsahující data, která chcete vložit.
viz
Požadovaný formát schránky.
hMetaPict
Metasoubor, který představuje položku, kterou chcete vložit.
Poznámky
Architektura tuto funkci volá jako součást výchozí implementace QueryAcceptData.
Tato funkce určuje typ vložení na základě výsledků obslužné rutiny pro vložit jinak. Pokud je cf 0, nová položka používá aktuální ikonickou reprezentaci. Pokud je cf nenulové a hMetaPict není NULL, nová položka používá hMetaPict pro jeho reprezentaci.
CRichEditView::FindText
Voláním této funkce vyhledáte zadaný text a nastavíte ho na aktuální výběr.
BOOL FindText(
LPCTSTR lpszFind,
BOOL bCase = TRUE,
BOOL bWord = TRUE,
BOOL bNext = TRUE);
Parametry
lpszFind
Obsahuje řetězec, který chcete vyhledat.
bCase
Označuje, jestli je hledání citlivé na malá a velká písmena.
bWord
Určuje, jestli má hledání odpovídat pouze celým slovům, nikoli částem slov.
bNext
Určuje směr hledání. Pokud je pravda, směr hledání je směrem ke konci vyrovnávací paměti. Pokud je hodnota FALSE, směr hledání je směrem k začátku vyrovnávací paměti.
Návratová hodnota
Nenulové, pokud je nalezen text lpszFind ; jinak 0.
Poznámky
Tato funkce zobrazí kurzor čekání během operace hledání.
Příklad
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
Voláním této funkce vyhledáte zadaný text a nastavíte ho na aktuální výběr.
BOOL FindTextSimple(
LPCTSTR lpszFind,
BOOL bCase = TRUE,
BOOL bWord = TRUE,
BOOL bNext = TRUE);
Parametry
lpszFind
Obsahuje řetězec, který chcete vyhledat.
bCase
Označuje, jestli je hledání citlivé na malá a velká písmena.
bWord
Určuje, jestli má hledání odpovídat pouze celým slovům, nikoli částem slov.
bNext
Určuje směr hledání. Pokud je pravda, směr hledání je směrem ke konci vyrovnávací paměti. Pokud je hodnota FALSE, směr hledání je směrem k začátku vyrovnávací paměti.
Návratová hodnota
Nenulové, pokud je nalezen text lpszFind ; jinak 0.
Příklad
Podívejte se na příklad pro CRichEditView::FindText.
CRichEditView::GetCharFormatSelection
Voláním této funkce získáte atributy formátování znaků aktuálního výběru.
CHARFORMAT2& GetCharFormatSelection();
Návratová hodnota
Struktura CHARFORMAT2 , která obsahuje atributy formátování znaků aktuálního výběru.
Poznámky
Další informace najdete v EM_GETCHARFORMAT zprávě a struktuře CHARFORMAT2 v sadě Windows SDK.
Příklad
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
Architektura volá tuto funkci jako součást zpracování IRichEditOleCallback::GetClipboardData.
virtual HRESULT GetClipboardData(
CHARRANGE* lpchrg,
DWORD dwReco,
LPDATAOBJECT lpRichDataObj,
LPDATAOBJECT* lplpdataobj);
Parametry
lpchrg
Ukazatel na strukturu CHARRANGE určující rozsah znaků (a položky OLE) kopírovat do datového objektu určeného lplpdataobj.
dwReco
Příznak operace schránky Může to být jedna z těchto hodnot.
RECO_COPY zkopírovat do schránky.
RECO_CUT Vyjmout do schránky.
RECO_DRAG operace přetažení (přetažení).
RECO_DROP operace přetažení (přetažení).
RECO_PASTE Vložit ze schránky.
lpRichDataObj
Ukazatel na objekt IDataObject obsahující data schránky z bohatého ovládacího prvku pro úpravy ( IRichEditOle::GetClipboardData).
lplpdataobj
Ukazatel na proměnnou ukazatele, která přijímá adresu objektu IDataObject
představující rozsah zadaný v parametru lpchrg . Hodnota lplpdataobj je ignorována, pokud je vrácena chyba.
Návratová hodnota
Hodnota HRESULT hlásí úspěch operace. Další informace o HRESULT naleznete v tématu Struktura kódů chyb modelu COM v sadě Windows SDK.
Poznámky
Pokud návratová hodnota označuje úspěch, vrátí přístup pomocí lplpdataobj; v opačném případě vrátí hodnotu, ke které přistupuje lpRichDataObj.IDataObject
IRichEditOleCallback::GetClipboardData
Tuto funkci přepište tak, aby se zadává vlastní data schránky. Výchozí implementace této funkce vrátí E_NOTIMPL.
Jedná se o pokročilý přepis.
Další informace naleznete v tématu IRichEditOle::GetClipboardData, IRichEditOleCallback::GetClipboardData a CHARRANGE v sadě Windows SDK a viz IDataObject v sadě Windows SDK.
CRichEditView::GetContextMenu
Architektura tuto funkci volá jako součást zpracování IRichEditOleCallback::GetContextMenu.
virtual HMENU GetContextMenu(
WORD seltyp,
LPOLEOBJECT lpoleobj,
CHARRANGE* lpchrg);
Parametry
seltyp
Typ výběru. Hodnoty typu výběru jsou popsány v části Poznámky.
lpoleobj
Ukazatel na OLEOBJECT
strukturu určující první vybraný objekt OLE, pokud výběr obsahuje jednu nebo více položek OLE. Pokud výběr neobsahuje žádné položky, má lpoleobj hodnotu NULL. Struktura OLEOBJECT
obsahuje ukazatel na objekt OLE v-table.
lpchrg
Ukazatel na strukturu CHARRANGE obsahující aktuální výběr.
Návratová hodnota
Popisovač místní nabídky
Poznámky
Tato funkce je typickou součástí zpracování pravého tlačítka myši.
Typ výběru může být libovolná kombinace následujících příznaků:
SEL_EMPTY Označuje, že neexistuje žádný aktuální výběr.
SEL_TEXT Označuje, že aktuální výběr obsahuje text.
SEL_OBJECT Označuje, že aktuální výběr obsahuje alespoň jednu položku OLE.
SEL_MULTICHAR Označuje, že aktuální výběr obsahuje více než jeden znak textu.
SEL_MULTIOBJECT Označuje, že aktuální výběr obsahuje více než jeden objekt OLE.
Výchozí implementace vrátí hodnotu NULL. Jedná se o pokročilý přepis.
Další informace naleznete v tématu IRichEditOleCallback::GetContextMenu a CHARRANGE v sadě Windows SDK.
CRichEditView::GetDocument
Voláním této funkce získáte ukazatel na CRichEditDoc
přidružený k tomuto zobrazení.
CRichEditDoc* GetDocument() const;
Návratová hodnota
Ukazatel na CRichEditDoc objekt přidružený k objektu CRichEditView
.
CRichEditView::GetInPlaceActiveItem
Voláním této funkce získáte položku OLE, která je aktuálně aktivována v tomto CRichEditView
objektu.
CRichEditCntrItem* GetInPlaceActiveItem() const;
Návratová hodnota
Ukazatel na jeden, místní aktivní CRichEditCntrItem objekt v tomto bohatém zobrazení pro úpravy; Null, pokud v aktuálním aktivním stavu není žádná položka OLE.
CRichEditView::GetMargins
Voláním této funkce načtete aktuální okraje použité při tisku.
CRect GetMargins() const;
Návratová hodnota
Okraje použité při tisku měřené v MM_TWIPS.
CRichEditView::GetPageRect
Voláním této funkce získáte rozměry stránky použité při tisku.
CRect GetPageRect() const;
Návratová hodnota
Hranice stránky použité při tisku měřené v MM_TWIPS.
Poznámky
Tato hodnota je založena na formátu papíru.
CRichEditView::GetPaperSize
Voláním této funkce načtěte aktuální formát papíru.
CSize GetPaperSize() const;
Návratová hodnota
Velikost papíru použitého při tisku měřená v MM_TWIPS.
Příklad
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
Voláním této funkce získáte atributy formátování odstavce aktuálního výběru.
PARAFORMAT2& GetParaFormatSelection();
Návratová hodnota
Struktura PARAFORMAT2 , která obsahuje atributy formátování odstavce aktuálního výběru.
Poznámky
Další informace najdete v tématu EM_GETPARAFORMAT zprávy a struktury PARAFORMAT2 v sadě Windows SDK.
CRichEditView::GetPrintRect
Voláním této funkce načtete hranice oblasti tisku v obdélníku stránky.
CRect GetPrintRect() const;
Návratová hodnota
Hranice oblasti obrázku použité při tisku měřené v MM_TWIPS.
Příklad
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
Voláním této funkce určíte šířku oblasti tisku.
int GetPrintWidth() const;
Návratová hodnota
Šířka oblasti tisku měřená v MM_TWIPS.
CRichEditView::GetRichEditCtrl
Voláním této funkce načtěte objekt CRichEditCtrl přidružený k objektu CRichEditView
.
CRichEditCtrl& GetRichEditCtrl() const;
Návratová hodnota
Objekt CRichEditCtrl
pro toto zobrazení.
Příklad
Podívejte se na příklad pro CRichEditView::FindText.
CRichEditView::GetSelectedItem
Voláním této funkce načtete položku OLE (objekt) aktuálně vybranou CRichEditCntrItem
v tomto CRichEditView
objektu.
CRichEditCntrItem* GetSelectedItem() const;
Návratová hodnota
Ukazatel na CRichEditCntrItem objekt vybraný v objektu CRichEditView
; Null pokud není v tomto zobrazení vybrána žádná položka.
CRichEditView::GetTextLength
Voláním této funkce načtete délku textu v tomto CRichEditView
objektu.
long GetTextLength() const;
Návratová hodnota
Délka textu v tomto CRichEditView
objektu.
CRichEditView::GetTextLengthEx
Voláním této členské funkce vypočítáte délku textu v tomto CRichEditView
objektu.
long GetTextLengthEx(
DWORD dwFlags,
UINT uCodePage = -1) const;
Parametry
dwFlags
Hodnota určující metodu, která se má použít při určování délky textu. Tento člen může být jedna nebo více hodnot uvedených v příznakech člena GETTEXTLENGTHEX popsané v sadě Windows SDK.
uCodePage
Znaková stránka pro překlad (CP_ACP pro znakovou stránku ANSI, 1200 pro Unicode).
Návratová hodnota
Počet znaků nebo bajtů v ovládacím prvku pro úpravy Pokud byly v dwFlags nastaveny nekompatibilní příznaky, vrátí tato členová funkce E_INVALIDARG.
Poznámky
GetTextLengthEx
poskytuje další způsoby určení délky textu. Podporuje funkci Rich Edit 2.0. Další informace naleznete v tématu O ovládacích prvcích pro úpravy s formátem v sadě Windows SDK.
CRichEditView::InsertFileAsObject
Voláním této funkce vložíte zadaný soubor (jako CRichEditCntrItem objekt) do bohatého zobrazení pro úpravy.
void InsertFileAsObject(LPCTSTR lpszFileName);
Parametry
lpszFileName
Řetězec obsahující název souboru, který se má vložit.
CRichEditView::InsertItem
Voláním této funkce vložíte objekt CRichEditCntrItem do bohatého zobrazení pro úpravy.
HRESULT InsertItem(CRichEditCntrItem* pItem);
Parametry
pItem
Ukazatel na položku, kterou chcete vložit.
Návratová hodnota
Hodnota HRESULT označující úspěch vložení.
Poznámky
Další informace o HRESULT naleznete v tématu Struktura kódů chyb modelu COM v sadě Windows SDK.
CRichEditView::IsRichEditFormat
Voláním této funkce určíte, zda je formát schránky, což je text, formát RTF nebo formát RTF s položkami OLE.
static BOOL AFX_CDECL IsRichEditFormat(CLIPFORMAT cf);
Parametry
viz
Formát schránky, který je zajímavý.
Návratová hodnota
Nenulové, pokud je formát schránky s formátováním pro úpravy nebo text.
CRichEditView::IsSelected
Voláním této funkce určíte, zda je zadaná položka OLE aktuálně vybrána v tomto zobrazení.
virtual BOOL IsSelected(const CObject* pDocItem) const;
Parametry
pDocItem
Ukazatel na objekt v zobrazení.
Návratová hodnota
Nenulové, pokud je objekt vybrán; jinak 0.
Poznámky
Tuto funkci přepište, pokud má odvozená třída zobrazení jinou metodu pro zpracování výběru položek OLE.
CRichEditView::m_nBulletIndent
Odsazení položek odrážek v seznamu; ve výchozím nastavení 720 jednotek, což je 1/2 palce.
int m_nBulletIndent;
CRichEditView::m_nWordWrap
Určuje typ zalamování slov pro toto zobrazení pro úpravy s formátem.
int m_nWordWrap;
Poznámky
Jedna z následujících hodnot:
WrapNone
Označuje žádné automatické zalamování slov.WrapToWindow
Označuje obtékání textu na základě šířky okna.WrapToTargetDevice
Označuje zalamování slov na základě charakteristik cílového zařízení.
Příklad
Podívejte se na příklad pro CRichEditView::WrapChanged.
CRichEditView::OnCharEffect
Voláním této funkce můžete přepnout efekty formátování znaků pro aktuální výběr.
void OnCharEffect(
DWORD dwMask,
DWORD dwEffect);
Parametry
DwMask
Efekty formátování znaků, které se mají upravit v aktuálním výběru.
dwEffect
Požadovaný seznam efektů formátování znaků, které chcete přepnout.
Poznámky
Každé volání této funkce přepíná zadané efekty formátování pro aktuální výběr.
Další informace o parametrech dwMask a dwEffect a jejich potenciálních hodnotách naleznete v odpovídajících datových členech CHARFORMAT v sadě Windows SDK.
Příklad
void CMyRichEditView::OnItalic()
{
OnCharEffect(CFM_ITALIC, CFE_ITALIC);
}
CRichEditView::OnFindNext
Volá se rozhraním při zpracování příkazů z dialogového okna Najít/nahradit.
virtual void OnFindNext(
LPCTSTR lpszFind,
BOOL bNext,
BOOL bCase,
BOOL bWord);
Parametry
lpszFind
Řetězec, který se má najít.
bNext
Směr hledání: PRAVDA označuje dolů; NEPRAVDA, nahoru.
bCase
Určuje, jestli má být hledání rozlišovat malá a velká písmena.
bWord
Určuje, zda má hledání odpovídat pouze celým slovům nebo ne.
Poznámky
Voláním této funkce vyhledáte text v souboru CRichEditView
. Přepište tuto funkci tak, aby změnila charakteristiky vyhledávání pro odvozenou třídu zobrazení.
CRichEditView::OnInitialUpdate
Volané architekturou po zobrazení je nejprve připojen k dokumentu, ale před zobrazením se zpočátku zobrazí.
virtual void OnInitialUpdate();
Poznámky
Výchozí implementace této funkce volá členovou funkci CView::OnUpdate bez informací nápovědy (to znamená, že pomocí výchozích hodnot 0 pro parametr lHint a NULL pro parametr pHint ). Tuto funkci přepište tak, aby prováděla jednorázovou inicializaci, která vyžaduje informace o dokumentu. Pokud má vaše aplikace například dokumenty s pevnou velikostí, můžete pomocí této funkce inicializovat limity posouvání zobrazení na základě velikosti dokumentu. Pokud vaše aplikace podporuje dokumenty s proměnlivou velikostí, použijte OnUpdate
k aktualizaci limitů posouvání při každé změně dokumentu.
Příklad
Podívejte se na příklad pro CRichEditView::m_nWordWrap.
CRichEditView::OnPasteNativeObject
Tato funkce slouží k načtení nativních dat z vložené položky.
virtual BOOL OnPasteNativeObject(LPSTORAGE lpStg);
Parametry
lpStg
Ukazatel na objekt IStorage .
Návratová hodnota
Nenulové, pokud je úspěšné; jinak, 0;
Poznámky
Obvykle byste to udělali vytvořením COleStreamFile kolem objektu IStorage
. Lze COleStreamFile
připojit k archivu a objekt CObject::Serialize volaný pro načtení dat.
Jedná se o pokročilý přepis.
Další informace najdete v tématu IStorage v sadě Windows SDK.
CRichEditView::OnParaAlign
Voláním této funkce změníte zarovnání odstavce pro vybrané odstavce.
void OnParaAlign(WORD wAlign);
Parametry
wAlign
Požadované zarovnání odstavce Jedna z následujících hodnot:
PFA_LEFT Zarovnat odstavce s levým okrajem.
PFA_RIGHT Zarovnat odstavce s pravým okrajem.
PFA_CENTER na střed odstavců mezi okraji.
Příklad
void CMyRichEditView::OnParaCenter()
{
OnParaAlign(PFA_CENTER);
}
CRichEditView::OnPrinterChanged
Přepište tuto funkci tak, aby při změně vlastností tohoto bohatého zobrazení pro úpravy změnila.
virtual void OnPrinterChanged(const CDC& dcPrinter);
Parametry
dcPrinter
Objekt CDC pro novou tiskárnu.
Poznámky
Výchozí implementace nastaví velikost papíru na fyzickou výšku a šířku výstupního zařízení (tiskárny). Pokud neexistuje žádný kontext zařízení přidružený k dcPrinter, výchozí implementace nastaví velikost papíru na 8,5 až 11 palců.
CRichEditView::OnReplaceAll
Volá se rozhraním při zpracování příkazu Nahradit všechny příkazy z dialogového okna Nahradit.
virtual void OnReplaceAll(
LPCTSTR lpszFind,
LPCTSTR lpszReplace,
BOOL bCase,
BOOL bWord);
Parametry
lpszFind
Text, který se má nahradit.
lpszReplace
Náhradní text.
bCase
Označuje, jestli je hledání citlivé na malá a velká písmena.
bWord
Označuje, jestli hledání musí vybrat celá slova nebo ne.
Poznámky
Voláním této funkce nahradíte všechny výskyty některých zadaných textů jiným řetězcem. Přepište tuto funkci tak, aby změnila charakteristiky hledání pro toto zobrazení.
Příklad
Podívejte se na příklad pro CRichEditView::FindText.
CRichEditView::OnReplaceSel
Volá se rozhraním při zpracování příkazů Nahradit z dialogového okna Nahradit.
virtual void OnReplaceSel(
LPCTSTR lpszFind,
BOOL bNext,
BOOL bCase,
BOOL bWord,
LPCTSTR lpszReplace);
Parametry
lpszFind
Text, který se má nahradit.
bNext
Označuje směr hledání: PRAVDA je dolů; NEPRAVDA, nahoru.
bCase
Označuje, jestli je hledání citlivé na malá a velká písmena.
bWord
Označuje, jestli hledání musí vybrat celá slova nebo ne.
lpszReplace
Náhradní text.
Poznámky
Voláním této funkce nahradíte jeden výskyt některého daného textu jiným řetězcem. Přepište tuto funkci tak, aby změnila charakteristiky hledání pro toto zobrazení.
CRichEditView::OnTextNotFound
Volá se rozhraním vždy, když hledání selže.
virtual void OnTextNotFound(LPCTSTR lpszFind);
Parametry
lpszFind
Text, který nebyl nalezen.
Poznámky
Přepište tuto funkci tak, aby se změnilo výstupní oznámení z messageBeep.
Další informace naleznete v tématu MessageBeep v sadě Windows SDK.
Příklad
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
Architektura volá tuto funkci k aktualizaci uživatelského rozhraní příkazů pro příkazy efektu znaků.
void OnUpdateCharEffect(
CCmdUI* pCmdUI,
DWORD dwMask,
DWORD dwEffect);
Parametry
pCmdUI
Ukazatel na objekt CCmdUI .
DwMask
Označuje masku formátování znaků.
dwEffect
Označuje efekt formátování znaků.
Poznámky
Maska dwMask určuje, které atributy formátování znaků se mají zkontrolovat. Příznak dwEffect zobrazí seznam atributů formátování znaků, které se mají nastavit nebo vymazat.
Další informace o parametrech dwMask a dwEffect a jejich potenciálních hodnotách naleznete v odpovídajících datových členech CHARFORMAT v sadě Windows SDK.
Příklad
void CMyRichEditView::OnUpdateCharItalicUI(CCmdUI* pCmdUI)
{
OnUpdateCharEffect(pCmdUI, CFM_ITALIC, CFE_ITALIC);
}
CRichEditView::OnUpdateParaAlign
Architektura volá tuto funkci, aby aktualizovalo uživatelské rozhraní příkazů pro příkazy efektu odstavce.
void OnUpdateParaAlign(
CCmdUI* pCmdUI,
WORD wAlign);
Parametry
pCmdUI
Ukazatel na objekt CCmdUI .
wAlign
Zarovnání odstavce, které chcete zkontrolovat. Jedna z následujících hodnot:
PFA_LEFT Zarovnat odstavce s levým okrajem.
PFA_RIGHT Zarovnat odstavce s pravým okrajem.
PFA_CENTER na střed odstavců mezi okraji.
Příklad
void CMyRichEditView::OnUpdateParaCenterUI(CCmdUI* pCmdUI)
{
OnUpdateParaAlign(pCmdUI, PFA_CENTER);
}
CRichEditView::P rintInsideRect
Voláním této funkce naformátujte rozsah textu v ovládacím prvku pro úpravy s formátováním tak, aby se vešel do rectLayout pro zařízení určené pDC.
long PrintInsideRect(
CDC* pDC,
RECT& rectLayout,
long nIndexStart,
long nIndexStop,
BOOL bOutput);
Parametry
pDC
Ukazatel na kontext zařízení pro výstupní oblast
rectLayout
RECT nebo CRect , který definuje výstupní oblast.
nIndexStart
Index založený na nule prvního znaku, který se má naformátovat.
nIndexStop
Index založený na nule posledního znaku, který se má naformátovat.
bOutput
Určuje, jestli se má text vykreslit. Pokud je hodnota FALSE, text se právě měří.
Návratová hodnota
Index posledního znaku, který se vejde do výstupní oblasti plus jeden.
Poznámky
Za tímto voláním obvykle následuje volání CRichEditCtrl::D isplayBand , které vygeneruje výstup.
Příklad
Podívejte se na příklad pro CRichEditView::GetPaperSize.
CRichEditView::P rintPage
Voláním této funkce naformátujte rozsah textu v ovládacím prvku pro úpravy s formátováním pro výstupní zařízení určené pDC.
long PrintPage(
CDC* pDC,
long nIndexStart,
long nIndexStop);
Parametry
pDC
Ukazatel na kontext zařízení pro výstup stránky
nIndexStart
Index založený na nule prvního znaku, který se má naformátovat.
nIndexStop
Index založený na nule posledního znaku, který se má naformátovat.
Návratová hodnota
Index posledního znaku, který se vejde na stránku plus jeden.
Poznámky
Rozložení každé stránky je řízeno GetPageRect a GetPrintRect. Za tímto voláním obvykle následuje volání CRichEditCtrl::D isplayBand , které vygeneruje výstup.
Všimněte si, že okraje jsou relativní k fyzické stránce, nikoli logické stránce. Okraje nuly proto často vystřiží text, protože mnoho tiskáren má na stránce netisknutelné oblasti. Abyste se vyhnuli výřezu textu, měli byste před tiskem zavolat SetMargins a nastavit přiměřené okraje.
CRichEditView::QueryAcceptData
Volá se rozhraním pro vložení objektu do úpravy s formátem.
virtual HRESULT QueryAcceptData(
LPDATAOBJECT lpdataobj,
CLIPFORMAT* lpcfFormat,
DWORD dwReco,
BOOL bReally,
HGLOBAL hMetaFile);
Parametry
lpdataobj
Ukazatel na objekt IDataObject pro dotaz.
lpcfFormat
Ukazatel na přijatelný formát dat.
dwReco
Nepoužívá se.
bReally
Označuje, jestli má operace vložení pokračovat nebo ne.
hMetaFile
Popisovač metasouboru, který se používá k vykreslení ikony položky.
Návratová hodnota
Hodnota HRESULT hlásí úspěch operace.
Poznámky
Přepište tuto funkci tak, aby zpracovávala různé uspořádání položek modelu COM v odvozené třídě dokumentu. Jedná se o pokročilý přepis.
Další informace o HRESULT a IDataObject
, naleznete v tématu Struktura kódy chyb MODELU COM a IDataObject, v uvedeném pořadí, v sadě Windows SDK.
Příklad
// 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
Voláním této funkce nastavíte atributy formátování znaků pro nový text v tomto CRichEditView
objektu.
void SetCharFormat(CHARFORMAT2 cf);
Parametry
viz
CHARFORMAT2 struktura obsahující nové výchozí atributy formátování znaků.
Poznámky
Tuto funkci mění pouze atributy určené dwMask
členem cf .
Další informace najdete v tématu EM_SETCHARFORMAT zpráva a struktura CHARFORMAT2 v sadě Windows SDK.
Příklad
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
Voláním této funkce nastavíte tiskové okraje pro toto bohaté zobrazení pro úpravy.
void SetMargins(const CRect& rectMargin);
Parametry
rectMargin
Nové hodnoty okrajů pro tisk měřené v MM_TWIPS.
Poznámky
Pokud je m_nWordWrapWrapToTargetDevice
, měli byste po použití této funkce zavolat WrapChanged, abyste upravili vlastnosti tisku.
Všimněte si, že okraje používané aplikací PrintPage jsou relativní vzhledem k fyzické stránce, nikoli logické stránce. Okraje nuly proto často vystřiží text, protože mnoho tiskáren má na stránce netisknutelné oblasti. Abyste se vyhnuli výřezu textu, měli byste před tiskem volat, SetMargins
abyste před tiskem nastavili přiměřené okraje tiskárny.
Příklad
Podívejte se na příklad pro CRichEditView::GetPaperSize.
CRichEditView::SetPaperSize
Voláním této funkce nastavíte formát papíru pro tisk tohoto bohatého zobrazení pro úpravy.
void SetPaperSize(CSize sizePaper);
Parametry
sizePaper
Nové hodnoty formátu papíru pro tisk měřené v MM_TWIPS.
Poznámky
Pokud je m_nWordWrapWrapToTargetDevice
, měli byste po použití této funkce zavolat WrapChanged, abyste upravili vlastnosti tisku.
Příklad
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
Voláním této funkce nastavíte atributy formátování odstavce pro aktuální výběr v tomto CRichEditView
objektu.
BOOL SetParaFormat(PARAFORMAT2& pf);
Parametry
Pf
PARAFORMAT2 struktura obsahující nové výchozí atributy formátování odstavce.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak, 0.
Poznámky
Touto funkcí se změní pouze atributy určené dwMask
členem pf.
Další informace najdete v tématu EM_SETPARAFORMAT zpráva a struktura PARAFORMAT2 v sadě Windows SDK.
Příklad
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
Voláním této funkce obnovíte stav interního vyhledávání ovládacího prvku CRichEditView po neúspěšném volání FindText.
void TextNotFound(LPCTSTR lpszFind);
Parametry
lpszFind
Obsahuje textový řetězec, který nebyl nalezen.
Poznámky
Doporučuje se, aby byla tato metoda volána okamžitě po neúspěšných voláních FindText , aby byl interní stav vyhledávání ovládacího prvku správně resetovaný.
Parametr lpszFind by měl obsahovat stejný obsah jako řetězec zadaný pro FindText. Po resetování stavu interního vyhledávání bude tato metoda volat OnTextNotFound metoda s zadaným vyhledávacím řetězcem.
Příklad
Podívejte se na příklad pro CRichEditView::FindText.
CRichEditView::WrapChanged
Tuto funkci zavolejte, když se změnily vlastnosti tisku ( SetMargins nebo SetPaperSize).
virtual void WrapChanged();
Poznámky
Přepište tuto funkci tak, aby upravovala způsob, jakým zobrazení pro úpravy s bohatým obsahem reaguje na změny v m_nWordWrap nebo vlastnostech tisku ( OnPrinterChanged).
Příklad
void CMyRichEditView::OnInitialUpdate()
{
CRichEditView::OnInitialUpdate();
// Turn on the horizontal scroll bar
m_nWordWrap = WrapNone;
WrapChanged();
}
Viz také
MFC – ukázka WORDPADU
CCtrlView – třída
Graf hierarchie
CRichEditDoc – třída
CRichEditCntrItem – třída