Megosztás:


CEditView osztály

Olyan nézetosztály, amely a Windows szerkesztési vezérlőinek funkcióit biztosítja, és egyszerű szövegszerkesztő funkciók implementálásához használható.

Szemantika

class CEditView : public CCtrlView

Tagok

Nyilvános konstruktorok

Név Leírás
CEditView::CEditView Egy típusú CEditViewobjektumot hoz létre.

Nyilvános metódusok

Név Leírás
CEditView::FindText Sztringet keres a szövegen belül.
CEditView::GetBufferLength Beolvasja a karakterpuffer hosszát.
CEditView::GetEditCtrl Hozzáférést biztosít egy CEditCEditView objektum (a Windows szerkesztési vezérlője) részéhez.
CEditView::GetPrinterFont Lekéri az aktuális nyomtató betűtípusát.
CEditView::GetSelectedText Lekéri az aktuális szövegkijelölést.
CEditView::LockBuffer Zárolja a puffert.
CEditView::P rintInsideRect Egy adott téglalapon belül jeleníti meg a szöveget.
CEditView::SerializeRaw Egy objektumot nyers szövegként szerializál CEditView a lemezen.
CEditView::SetPrinterFont Új nyomtató betűtípusát állítja be.
CEditView::SetTabStops Tabulátorokat állít be a képernyőmegjelenítéshez és a nyomtatáshoz is.
CEditView::UnlockBuffer Feloldja a puffer zárolását.

Védett metódusok

Név Leírás
CEditView::OnFindNext Megkeresi egy szöveges sztring következő előfordulását.
CEditView::OnReplaceAll Egy adott sztring összes előfordulását lecseréli egy új sztringre.
CEditView::OnReplaceSel Lecseréli az aktuális kijelölést.
CEditView::OnTextNotFound Akkor van meghívva, ha a keresési művelet nem felel meg a további szövegnek.

Nyilvános adatok tagjai

Név Leírás
CEditView::d wStyleDefault A típusobjektumok CEditViewalapértelmezett stílusa.

Megjegyzések

Az CEditView osztály a következő további függvényeket biztosítja:

  • Nyomtat.

  • Keresés és csere.

Mivel az osztály CEditView az osztály CViewszármazéka, az osztály CEditView objektumai dokumentumokkal és dokumentumsablonokkal használhatók.

Minden CEditView vezérlő szövege a saját globális memóriaobjektumában van megőrzve. Az alkalmazás tetszőleges számú CEditView objektummal rendelkezhet.

Hozzon létre típusú CEditView objektumokat, ha a fent felsorolt hozzáadott funkciókkal rendelkező szerkesztőablakot szeretne létrehozni, vagy ha egyszerű szövegszerkesztő funkciót szeretne használni. Egy CEditView objektum az ablak teljes ügyfélterületét elfoglalhatja. Saját osztályokat CEditView hozhat létre az alapfunkciók hozzáadásához vagy módosításához, vagy deklarálhatja a dokumentumsablonhoz hozzáadható osztályokat.

Az osztály CEditView alapértelmezett implementációja a következő parancsokat kezeli: ID_EDIT_SELECT_ALL, ID_EDIT_FIND, ID_EDIT_REPLACE, ID_EDIT_REPEAT és ID_FILE_PRINT.

Az alapértelmezett karakterkorlát CEditView (1024 * 1024 - 1 = 1048575). Ez az alapul szolgáló szerkesztési vezérlő EM_LIMITTEXT függvényének meghívásával módosítható. A korlátok azonban az operációs rendszertől és a szerkesztési vezérlő típusától (egy- vagy többsoros) függően eltérőek. Ezekről a korlátokról további információt a EM_LIMITTEXT talál.

Ha módosítani szeretné ezt a korlátot a vezérlőben, felülbírálja az OnCreate() osztály függvényét CEditView , és szúrja be a következő kódsort:

GetEditCtrl().SetLimitText(nNewVal); //nNewVal, the new character limit

A típusobjektumok CEditView (vagy a származtatott CEditView) objektumokra a következő korlátozások vonatkoznak:

  • CEditView nem valósítja meg a valós, amit lát, amit kap (WYSIWYG) szerkesztés. Ha a képernyőn való olvashatóság és a megfelelő nyomtatott kimenet között van választási lehetőség, CEditView a képernyő olvashatósága mellett dönt.

  • CEditView csak egyetlen betűtípussal jeleníthet meg szöveget. A speciális karakterformázás nem támogatott. További lehetőségekért tekintse meg a CRichEditView osztályt.

  • A tartalmazhatott CEditView szöveg mennyisége korlátozott. A korlátok megegyeznek a vezérlő korlátaival CEdit .

További információkért CEditViewlásd az MFC-ben elérhető származtatott nézetosztályokat.

Öröklési hierarchia

CObject

CCmdTarget

CWnd

CView

CCtrlView

CEditView

Követelmények

Fejléc: afxext.h

CEditView::CEditView

Egy típusú CEditViewobjektumot hoz létre.

CEditView();

Megjegyzések

Az objektum létrehozása után meg kell hívnia a CWnd::Create függvényt a szerkesztési vezérlő használata előtt. Ha egy osztályt a sablonból CEditView hoz létre és a sablonhoz ad CWinApp::AddDocTemplatehozzá, a keretrendszer ezt a konstruktort és a függvényt Create is meghívja.

CEditView::d wStyleDefault

Az objektum alapértelmezett stílusát CEditView tartalmazza.

static const DWORD dwStyleDefault;

Megjegyzések

Adja át ezt a statikus tagot a függvény dwStyle paramétereként az Create objektum alapértelmezett stílusának CEditView lekéréséhez.

CEditView::FindText

Hívja meg a függvényt FindText az CEditView objektum szövegpufferének kereséséhez.

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

Paraméterek

lpszFind
A megtalálandó szöveg.

bNext
Megadja a keresés irányát. Ha IGAZ, a keresési irány a puffer vége felé tart. Ha HAMIS, a keresési irány a puffer elejére kerül.

bCase
Megadja, hogy a keresés megkülönbözteti-e a kis- és nagybetűket. Ha IGAZ, a keresés megkülönbözteti a kis- és nagybetűkre vonatkozó adatokat. Ha HAMIS, a keresés nem érzékeny a kis- és nagybetűkre.

Visszaadott érték

Nemzero, ha a keresési szöveg megtalálható; egyéb esetben 0.

Megjegyzések

Ez a függvény megkeresi a pufferben az lpszFind által megadott szöveget az aktuális kijelöléstől kezdve a bNext által megadott irányban, valamint a bCase által megadott kis- és nagybetűk érzékenységével. Ha a szöveg megtalálható, a kijelölést a talált szövegre állítja, és nemero értéket ad vissza. Ha a szöveg nem található, a függvény 0 értéket ad vissza.

A függvényt általában csak akkor FindText kell meghívnia, ha felülbírálja OnFindNexta függvényt , amely meghívja a függvényt FindText.

CEditView::GetBufferLength

Hívja meg ezt a tagfüggvényt a szerkesztési vezérlő pufferében jelenleg szereplő karakterek számának lekéréséhez, a null terminátort nem beleértve.

UINT GetBufferLength() const;

Visszaadott érték

A pufferben lévő sztring hossza.

CEditView::GetEditCtrl

Hívás GetEditCtrl a szerkesztési nézet által használt szerkesztési vezérlőre mutató hivatkozás lekéréséhez.

CEdit& GetEditCtrl() const;

Visszaadott érték

Hivatkozás egy CEdit objektumra.

Megjegyzések

Ez a vezérlő CEdit típusú, így közvetlenül a tagfüggvények használatával módosíthatja a Windows szerkesztési CEdit vezérlőt.

Figyelmeztetés

CEdit Az objektum használata megváltoztathatja az alapul szolgáló Windows szerkesztési vezérlő állapotát. A CEdit::SetTabStops függvénnyel például nem módosíthatja a lapbeállításokat, mert CEditView ezeket a beállításokat gyorsítótárazza mind a szerkesztési vezérlőben, mind a nyomtatásban. Ehelyett használja a CEditView::SetTabStops parancsot.

példa

void CMyEditView::OnInitialUpdate()
{
   CEditView::OnInitialUpdate();

   // get the edit control and set some initial properties for it
   CEdit &theEdit = GetEditCtrl();

   // adjust the left margin without changing the right margin
   DWORD dwMargins = theEdit.GetMargins();
   theEdit.SetMargins(20, HIWORD(dwMargins));

   // only accept 10k of text
   theEdit.SetLimitText(10 * 1024);
}

CEditView::GetPrinterFont

Hívás az aktuális nyomtató betűtípusát leíró GetPrinterFont mutató mutató lekéréséhez.

CFont* GetPrinterFont() const;

Visszaadott érték

Az aktuális nyomtató betűtípusát meghatározó objektumra mutató mutató CFont ; NULL érték, ha a nyomtató betűtípusa nincs beállítva. Előfordulhat, hogy a mutató ideiglenes, és nem tárolható későbbi használatra.

Megjegyzések

Ha a nyomtató betűtípusa nincs beállítva, az osztály alapértelmezett nyomtatási viselkedése az CEditView , hogy ugyanazt a betűtípust használja, amelyet a megjelenítéshez használ.

Ezzel a függvénnyel határozhatja meg az aktuális nyomtató betűtípusát. Ha nem a kívánt nyomtató betűtípusa, módosítsa a CEditView::SetPrinterFont parancsot .

CEditView::GetSelectedText

A kijelölt szöveg objektumba GetSelectedText másolásának meghívása CString a kijelölés végéig vagy a kijelölés első kocsivissza karakterét megelőző karakterig.

void GetSelectedText(CString& strResult) const;

Paraméterek

strResult
A kijelölt szöveg fogadásához szükséges objektumra mutató hivatkozás CString .

CEditView::LockBuffer

Hívja meg ezt a tagfüggvényt a puffer mutatójának lekéréséhez. A puffert nem szabad módosítani.

LPCTSTR LockBuffer() const;

Visszaadott érték

A szerkesztési vezérlő pufferére mutató mutató.

CEditView::OnFindNext

Megkeresi a pufferben az lpszFind által megadott szöveget a bNext által megadott irányban, a bCase által megadott kis- és nagybetűk érzékenységével.

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

Paraméterek

lpszFind
A megtalálandó szöveg.

bNext
Megadja a keresés irányát. Ha IGAZ, a keresési irány a puffer vége felé tart. Ha HAMIS, a keresési irány a puffer elejére kerül.

bCase
Megadja, hogy a keresés megkülönbözteti-e a kis- és nagybetűket. Ha IGAZ, a keresés megkülönbözteti a kis- és nagybetűkre vonatkozó adatokat. Ha HAMIS, a keresés nem érzékeny a kis- és nagybetűkre.

Megjegyzések

A keresés az aktuális kijelölés elején kezdődik, és a FindText hívásával történik. Az alapértelmezett implementációban meghívja az OnFindNext, ha a szöveg nem található.

Felülbírálás OnFindNext a szövegkeresés módjának CEditViewmódosításához. CEditView hívás OnFindNext , amikor a felhasználó a Következő keresése gombot választja a szokásos Keresés párbeszédpanelen.

CEditView::OnReplaceAll

CEditView hívásokat kezdeményez OnReplaceAll , amikor a felhasználó a Standard Csere párbeszédpanelEn az Összes cseréje gombot választja.

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

Paraméterek

lpszFind
A megtalálandó szöveg.

lpszReplace
A keresési szöveget lecserélő szöveg.

bCase
Meghatározza, hogy a keresés megkülönbözteti-e a kis- és nagybetűket. Ha IGAZ, a keresés megkülönbözteti a kis- és nagybetűkre vonatkozó adatokat. Ha HAMIS, a keresés nem érzékeny a kis- és nagybetűkre.

Megjegyzések

OnReplaceAll Megkeresi a pufferben lévő szöveget az lpszFind által megadott szövegre, a kis- és nagybetűk érzékenységét pedig a bCase határozza meg. A keresés az aktuális kijelölés elején kezdődik. Minden alkalommal, amikor a keresési szöveg megtalálható, ez a függvény lecseréli a szöveg előfordulását az lpszReplace által megadott szövegre. A keresés a FindText hívásával történik. Az alapértelmezett implementációban a Rendszer meghívja az OnTextNotFound parancsot , ha a szöveg nem található.

Ha az aktuális kijelölés nem egyezik az lpszFind beállítással, a kijelölés az lpszFind által megadott szöveg első előfordulására frissül, és nem történik csere. Ez lehetővé teszi a felhasználó számára, hogy erősítse meg, hogy ezt szeretné tenni, ha a kijelölés nem egyezik a lecserélendő szövegével.

Felülbírálás OnReplaceAll a CEditView-származtatott objektumok szövegcseréjének módosításához.

CEditView::OnReplaceSel

CEditView hívásokat kezdeményez OnReplaceSel , amikor a felhasználó a Csere gombot választja a Standard Csere párbeszédpanelen.

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

Paraméterek

lpszFind
A megtalálandó szöveg.

bNext
Megadja a keresés irányát. Ha IGAZ, a keresési irány a puffer vége felé tart. Ha HAMIS, a keresési irány a puffer elejére kerül.

bCase
Megadja, hogy a keresés megkülönbözteti-e a kis- és nagybetűket. Ha IGAZ, a keresés megkülönbözteti a kis- és nagybetűkre vonatkozó adatokat. Ha HAMIS, a keresés nem érzékeny a kis- és nagybetűkre.

lpszReplace
A talált szöveg helyére beírt szöveg.

Megjegyzések

A kijelölés cseréje után a függvény megkeresi a pufferben lévő szöveget az lpszFind által megadott szöveg következő előfordulására a bNext által megadott irányban, a bCase által megadott kis- és nagybetűk érzékenységével. A keresés a FindText hívásával történik. Ha a szöveg nem található, a rendszer meghívja az OnTextNotFound parancsot .

Felülbírálás OnReplaceSel a CEditViewkijelölt szöveg felülírásának módosításához.

CEditView::OnTextNotFound

A függvény felülbírálása az alapértelmezett implementáció módosításához, amely meghívja a Windows függvényt MessageBeep.

virtual void OnTextNotFound(LPCTSTR lpszFind);

Paraméterek

lpszFind
A megtalálandó szöveg.

CEditView::P rintInsideRect

Hívás PrintInsideRect a rectLayout által megadott téglalapban lévő szöveg nyomtatására.

UINT PrintInsideRect(
    CDC *pDC,
    RECT& rectLayout,
    UINT nIndexStart,
    UINT nIndexStop);

Paraméterek

pDC
Mutasson a nyomtatóeszköz környezetére.

rectLayout
Hivatkozás CRect objektumra vagy RECT-struktúrára , amely megadja a szöveg megjelenítésének téglalapját.

nIndexStart
Indexelés az első megjelenítendő karakter pufferén belül.

nIndexStop
Az utolsó megjelenítendő karaktert követő karakter pufferén belüli indexelés.

Visszaadott érték

A következő nyomtatandó karakter indexe (vagyis az utolsó megjelenített karaktert követő karakter).

Megjegyzések

Ha a CEditView vezérlő nem rendelkezik a stílus ES_AUTOHSCROLL, a szöveg be van csomagolva a renderelő téglalapba. Ha a vezérlőelem stílusa ES_AUTOHSCROLL, a szöveg a téglalap jobb szélén lesz levágva.

A rect.bottomrectLayout objektum eleme módosul, így a téglalap méretei határozzák meg az eredeti téglalap szöveg által elfoglalt részét.

CEditView::SerializeRaw

Hívás SerializeRaw arra, hogy egy CArchive objektum felolvassa vagy beírja az CEditView objektum szövegét egy szövegfájlba.

void SerializeRaw(CArchive& ar);

Paraméterek

Ar
Hivatkozás a CArchive szerializált szöveget tároló objektumra.

Megjegyzések

SerializeRawabban különbözik a belső megvalósítástólCEditViewSerialize, hogy csak a szöveget olvassa és írja, az objektum leírási adatainak megelõzése nélkül.

CEditView::SetPrinterFont

Hívás SetPrinterFont a nyomtató betűtípusának a pFont által megadott betűtípusra való beállításához.

void SetPrinterFont(CFont* pFont);

Paraméterek

pFont
Mutató egy típusú CFontobjektumra. Null érték esetén a nyomtatáshoz használt betűtípus a megjelenítési betűtípuson alapul.

Megjegyzések

Ha azt szeretné, hogy a nézet mindig egy adott betűtípust használjon a nyomtatáshoz, adjon meg egy hívást SetPrinterFont az osztály függvényében OnPreparePrinting . Ezt a virtuális függvényt a nyomtatás előtt hívjuk meg, így a betűkészlet módosítása a nézet tartalmának nyomtatása előtt történik.

CEditView::SetTabStops

Hívja meg ezt a függvényt a megjelenítéshez és nyomtatáshoz használt tabulátorok beállításához.

void SetTabStops(int nTabStops);

Paraméterek

nTabStops
Az egyes tabulátorok szélessége párbeszédpanel-egységekben.

Megjegyzések

Csak egyetlen tabulátorszélesség támogatott. (CEdit az objektumok több lapszélességű lapot támogatnak.) A szélességek párbeszédpanel-egységekben találhatók, amelyek a nyomtatáskor vagy megjelenítéskor használt betűtípus átlagos karakterszélességének negyedét (csak kis- és nagybetűk alapján) mutatják. Ne használja, CEdit::SetTabStops mert CEditView gyorsítótárazza a tabulátor értékét.

Ez a függvény csak annak az objektumnak a lapjait módosítja, amelynek az elnevezése történik. Az alkalmazás minden CEditView objektumának tabulátorainak módosításához hívja meg az egyes objektumok függvényét SetTabStops .

példa

Ez a kódrészlet minden negyedik karakterre beállítja a vezérlő tabulátorát a vezérlő által használt betűtípus gondos mérésével.

// gain a reference to the edit control
CEdit &theEdit = GetEditCtrl();

// get the font the control is using
CFont *pFont = theEdit.GetFont();
TEXTMETRIC tm;

// get the control's DC, too
CDC *pDC = theEdit.GetDC();

// Select the font that the control uses by default into the DC.
// We must do this because the control may or may not be using
// that font at this exact moment
CFont *pOldFont = pDC->SelectObject(pFont);

// Retrieve text metrics for that font and return the previously
// selected font.
pDC->GetTextMetrics(&tm);
pDC->SelectObject(pOldFont);

// Get an identity rectangle and map it to dialog units
CRect rect(0, 0, 100, 1);
::MapDialogRect((HWND)this, rect);

// We now know that 100 dialog units are rect.Width() screen units,
// so we can multiply screen units by 100 and divide by rect.Width()
// to find dialog units from screen units. tm.tmAveCharWidth is
// the width of _one_ character, so setting the tabs at every
// four characters means we also multiply by four.
SetTabStops((4 * tm.tmAveCharWidth * 100) / rect.Width());

CEditView::UnlockBuffer

Hívja meg ezt a tagfüggvényt a puffer feloldásához.

void UnlockBuffer() const;

Megjegyzések

Hívás UnlockBuffer , miután befejezte a LockBuffer által visszaadott mutató használatát.

Lásd még

MFC-minta SUPERPAD
CCtrlView osztály
hierarchiadiagram
CEdit osztály
CDocument osztály
CDocTemplate osztály
CCtrlView osztály
CRichEditView osztály