Aracılığıyla paylaş


CEditView Sınıfı

Windows düzenleme denetiminin işlevselliğini sağlayan ve basit metin düzenleyicisi işlevselliğini uygulamak için kullanılabilen bir görünüm sınıfı türüdür.

Sözdizimi

class CEditView : public CCtrlView

Üyeler

Ortak Oluşturucular

Ad Tanım
CEditView::CEditView türünde CEditViewbir nesnesi oluşturur.

Genel Yöntemler

Ad Tanım
CEditView::FindText Metin içinde bir dize arar.
CEditView::GetBufferLength Karakter arabelleğinin uzunluğunu alır.
CEditView::GetEditCtrl Nesnenin CEditCEditView bölümüne erişim sağlar (Windows düzenleme denetimi).
CEditView::GetPrinterFont Geçerli yazıcı yazı tipini alır.
CEditView::GetSelectedText Geçerli metin seçimini alır.
CEditView::LockBuffer Arabelleği kilitler.
CEditView::P rintInsideRect Metni belirli bir dikdörtgenin içinde işler.
CEditView::SerializeRaw Bir CEditView nesneyi ham metin olarak diske serileştirir.
CEditView::SetPrinterFont Yeni bir yazıcı yazı tipi ayarlar.
CEditView::SetTabStops Hem ekran görüntüsü hem de yazdırma için sekme duraklarını ayarlar.
CEditView::UnlockBuffer Arabelleğin kilidini açar.

Korumalı Yöntemler

Ad Tanım
CEditView::OnFindNext Bir metin dizesinin sonraki oluşumunu bulur.
CEditView::OnReplaceAll Belirli bir dizenin tüm oluşumlarını yeni bir dizeyle değiştirir.
CEditView::OnReplaceSel Geçerli seçimi değiştirir.
CEditView::OnTextNotFound Bulma işlemi başka bir metinle eşleşmediğinde çağrılır.

Ortak Veri Üyeleri

Ad Tanım
CEditView::d wStyleDefault türünde CEditViewnesneler için varsayılan stil.

Açıklamalar

CEditView sınıfı aşağıdaki ek işlevleri sağlar:

  • Yazdırma.

  • Bulma ve değiştirme.

sınıfı CEditView sınıfının bir türevi CViewolduğundan, sınıfın CEditView nesneleri belgeler ve belge şablonlarıyla kullanılabilir.

Her CEditView denetimin metni kendi genel bellek nesnesinde tutulur. Uygulamanızın herhangi bir sayıda CEditView nesnesi olabilir.

Yukarıda listelenen ek işlevlere sahip bir düzenleme penceresi istiyorsanız veya basit metin düzenleyici işlevselliği istiyorsanız, türünde CEditView nesneler oluşturun. Nesne CEditView , pencerenin tüm istemci alanını kaplayabilir. Temel işlevleri eklemek veya değiştirmek ya da belge şablonuna eklenebilen sınıfları bildirmek için kendi sınıflarınızı 'den CEditView türetin.

Sınıfın CEditView varsayılan uygulaması şu komutları işler: ID_EDIT_SELECT_ALL, ID_EDIT_FIND, ID_EDIT_REPLACE, ID_EDIT_REPEAT ve ID_FILE_PRINT.

için CEditView varsayılan karakter sınırı :(1024 * 1024 - 1 = 1048575). Bu, temel alınan düzenleme denetiminin EM_LIMITTEXT işlevi çağrılarak değiştirilebilir. Ancak, sınırlar işletim sistemine ve düzenleme denetiminin türüne (tek veya çok satırlı) bağlı olarak farklıdır. Bu sınırlar hakkında daha fazla bilgi için bkz . EM_LIMITTEXT.

Denetiminizde bu sınırı değiştirmek için sınıfınızın CEditView işlevini geçersiz kılın OnCreate() ve aşağıdaki kod satırını ekleyin:

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

türündeki CEditView (veya türünden CEditViewtüretilen) nesneler aşağıdaki sınırlamalara sahiptir:

  • CEditView , gördüğünüz şeyin ne olduğunu (WYSIWYG) düzenlediğiniz doğru uygulamaz. Ekranda okunabilirlik ile eşleşen yazdırılan çıkış arasında seçim olduğunda, CEditView ekran okunabilirliğini tercih eder.

  • CEditView metni yalnızca tek bir yazı tipinde görüntüleyebilir. Özel karakter biçimlendirmesi desteklenmez. Daha fazla özellik için CRichEditView sınıfına bakın.

  • İçerebileceği metin CEditView miktarı sınırlıdır. Sınırlar denetimle CEdit aynıdır.

hakkında CEditViewdaha fazla bilgi için bkz . MFC'de Kullanılabilen Türetilmiş Görünüm Sınıfları.

Devralma Hiyerarşisi

Cobject

Ccmdtarget

Cwnd

Cview

CCtrlView

CEditView

Gereksinimler

Üst bilgi: afxext.h

CEditView::CEditView

türünde CEditViewbir nesnesi oluşturur.

CEditView();

Açıklamalar

Nesneyi oluşturduktan sonra, düzenleme denetimi kullanılmadan önce CWnd::Create işlevini çağırmanız gerekir. öğesinden CEditView bir sınıf türetip kullanarak CWinApp::AddDocTemplatebunu şablona eklerseniz, çerçeve hem bu oluşturucuyu Create hem de işlevi çağırır.

CEditView::d wStyleDefault

Nesnenin varsayılan stilini CEditView içerir.

static const DWORD dwStyleDefault;

Açıklamalar

Nesnenin varsayılan stilini elde etmek için CEditView bu statik üyeyi Create işlevin dwStyle parametresi olarak geçirin.

CEditView::FindText

Nesnenin FindText metin arabelleğinde CEditView arama yapmak için işlevini çağırın.

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

Parametreler

lpszFind
Bulunabilecek metin.

bİleri
Aramanın yönünü belirtir. TRUE ise, arama yönü arabelleğin sonuna doğru olur. YANLIŞ ise, arama yönü arabelleğin başına doğru olur.

bCase
Aramanın büyük/küçük harfe duyarlı olup olmadığını belirtir. TRUE ise, arama büyük/küçük harfe duyarlıdır. YANLIŞ ise, arama büyük/küçük harfe duyarlı değildir.

İade Değeri

Arama metni bulunursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bu işlev, geçerli seçimden başlayarak, bNext tarafından belirtilen yönde ve bCase tarafından belirtilen büyük/küçük harf duyarlılığıyla lpszFind tarafından belirtilen metin için arabellekteki metni arar. Metin bulunursa, seçileni bulunan metne ayarlar ve sıfır olmayan bir değer döndürür. Metin bulunamazsa işlev 0 döndürür.

normalde işlevini çağıran geçersiz kılmadığınız OnFindNextsürece işlevini çağırmanız FindTextFindTextgerekmez.

CEditView::GetBufferLength

Boş sonlandırıcı dahil olmak üzere düzenleme denetiminin arabelleğindeki karakterlerin sayısını almak için bu üye işlevini çağırın.

UINT GetBufferLength() const;

İade Değeri

Arabellekteki dizenin uzunluğu.

CEditView::GetEditCtrl

Düzenleme görünümü tarafından kullanılan düzenleme denetimine başvuru almak için çağrısı GetEditCtrl .

CEdit& GetEditCtrl() const;

İade Değeri

Bir nesneye CEdit başvuru.

Açıklamalar

Bu denetim CEdit türünde olduğundan, windows düzenleme denetimini doğrudan üye işlevlerini kullanarak CEdit işleyebilirsiniz.

Dikkat

nesnesini kullanmak CEdit , temel alınan Windows düzenleme denetiminin durumunu değiştirebilir. Örneğin, bu ayarları hem düzenleme denetiminde hem de yazdırmada kullanmak üzere önbelleğe aldığından, CEdit::SetTabStops işlevini CEditView kullanarak sekme ayarlarını değiştirmemelisiniz. Bunun yerine CEditView::SetTabStops kullanın.

Örnek

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

Geçerli yazıcı yazı tipini açıklayan bir CFont nesnesine işaretçi almak için çağrısı GetPrinterFont yapın.

CFont* GetPrinterFont() const;

İade Değeri

Geçerli yazıcı yazı tipini belirten nesne CFont işaretçisi; Yazıcı yazı tipi ayarlanmamışsa NULL. İşaretçi geçici olabilir ve daha sonra kullanmak üzere depolanmamalıdır.

Açıklamalar

Yazıcı yazı tipi ayarlanmamışsa, sınıfın varsayılan yazdırma davranışı CEditView , görüntü için kullanılan yazı tipini kullanarak yazdırmaktır.

Geçerli yazıcı yazı tipini belirlemek için bu işlevi kullanın. İstenen yazıcı yazı tipi değilse, değiştirmek için CEditView::SetPrinterFont kullanın.

CEditView::GetSelectedText

Seçili metniCString, seçimin sonuna kadar veya seçimdeki ilk satır başı karakterinden önceki karaktere kopyalamak için çağrısı GetSelectedText yapın.

void GetSelectedText(CString& strResult) const;

Parametreler

strResult
CString Seçili metni almak için nesneye başvuru.

CEditView::LockBuffer

Arabelleğe bir işaretçi almak için bu üye işlevini çağırın. Arabellek değiştirilmemelidir.

LPCTSTR LockBuffer() const;

İade Değeri

Düzenleme denetiminin arabelleğinin işaretçisi.

CEditView::OnFindNext

Arabellekteki metinde lpszFind tarafından belirtilen metni bNext tarafından belirtilen yönde, bCase tarafından belirtilen büyük/küçük harf duyarlılığıyla arar.

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

Parametreler

lpszFind
Bulunabilecek metin.

bİleri
Aramanın yönünü belirtir. TRUE ise, arama yönü arabelleğin sonuna doğru olur. YANLIŞ ise, arama yönü arabelleğin başına doğru olur.

bCase
Aramanın büyük/küçük harfe duyarlı olup olmadığını belirtir. TRUE ise, arama büyük/küçük harfe duyarlıdır. YANLIŞ ise, arama büyük/küçük harfe duyarlı değildir.

Açıklamalar

Arama, geçerli seçimin başlangıcında başlar ve FindText çağrısıyla gerçekleştirilir. Varsayılan uygulamada, OnFindNext metin bulunamazsa OnTextNotFound'ı çağırır.

Türetilmiş nesnenin CEditViewmetin arama şeklini değiştirmek için geçersiz kılınOnFindNext. CEditView , kullanıcı standart Bul iletişim kutusunda Sonrakini Bul düğmesini seçtiğinde arar OnFindNext .

CEditView::OnReplaceAll

CEditView , kullanıcı standart Değiştir iletişim kutusunda Tümünü Değiştir düğmesini seçtiğinde çağırır OnReplaceAll .

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

Parametreler

lpszFind
Bulunabilecek metin.

lpszReplace
Arama metninin yerini alacak metin.

bCase
Aramanın büyük/küçük harfe duyarlı olup olmadığını belirtir. TRUE ise, arama büyük/küçük harfe duyarlıdır. YANLIŞ ise, arama büyük/küçük harfe duyarlı değildir.

Açıklamalar

OnReplaceAllbCase tarafından belirtilen büyük/küçük harf duyarlılığı ile lpszFind tarafından belirtilen metin için arabellekteki metni arar. Arama, geçerli seçimin başlangıcında başlar. Arama metni her bulunduğunda, bu işlev metnin bu oluşumunu lpszReplace tarafından belirtilen metinle değiştirir. Arama, FindText çağrısıyla gerçekleştirilir. Varsayılan uygulamada, metin bulunamazsa OnTextNotFound çağrılır.

Geçerli seçim lpszFind ile eşleşmiyorsa, seçim lpszFind tarafından belirtilen metnin ilk oluşumuna güncelleştirilir ve bir değiştirme yapılmaz. Bu, kullanıcının seçim değiştirilecek metinle eşleşmediğinde yapmak istediği şeyin bu olduğunu onaylamasına olanak tanır.

Türetilmiş bir CEditViewnesnenin metnin yerini alma biçimini değiştirmek için geçersiz kılınOnReplaceAll.

CEditView::OnReplaceSel

CEditView , kullanıcı standart Değiştir iletişim kutusunda Değiştir düğmesini seçtiğinde çağırır OnReplaceSel .

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

Parametreler

lpszFind
Bulunabilecek metin.

bİleri
Aramanın yönünü belirtir. TRUE ise, arama yönü arabelleğin sonuna doğru olur. YANLIŞ ise, arama yönü arabelleğin başına doğru olur.

bCase
Aramanın büyük/küçük harfe duyarlı olup olmadığını belirtir. TRUE ise, arama büyük/küçük harfe duyarlıdır. YANLIŞ ise, arama büyük/küçük harfe duyarlı değildir.

lpszReplace
Bulunan metnin yerini alacak metin.

Açıklamalar

Seçimi değiştirdikten sonra, bu işlev arabellekteki metinde lpszFind tarafından belirtilen metnin bir sonraki oluşumunu bNext tarafından belirtilen yönde, bCase tarafından belirtilen büyük/küçük harf duyarlılığıyla arar. Arama, FindText çağrısıyla gerçekleştirilir. Metin bulunamazsa, OnTextNotFound çağrılır.

Türetilmiş bir CEditViewnesnenin seçili metnin yerini alma biçimini değiştirmek için geçersiz kılınOnReplaceSel.

CEditView::OnTextNotFound

Windows işlevini çağıran varsayılan uygulamayı değiştirmek için bu işlevi MessageBeepgeçersiz kılın.

virtual void OnTextNotFound(LPCTSTR lpszFind);

Parametreler

lpszFind
Bulunabilecek metin.

CEditView::P rintInsideRect

rectLayout tarafından belirtilen dikdörtgendeki metni yazdırmak için çağrısıPrintInsideRect.

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

Parametreler

Pdc
Yazıcı cihazı bağlamı işaretçisi.

rectLayout
Metnin işlendiği dikdörtgeni belirten bir CRect nesnesine veya RECT yapısına başvuru.

nIndexStart
İşlenecek ilk karakterin arabelleği içinde dizin oluşturun.

nIndexStop
oluşturulacak son karakteri izleyen karakterin arabelleği içinde dizin.

İade Değeri

Yazdırılacak sonraki karakterin dizini (işlenen son karakteri izleyen karakter).

Açıklamalar

Denetimin CEditView stil ES_AUTOHSCROLL yoksa, metin işleme dikdörtgeninin içinde kaydırılır. Denetimin stil ES_AUTOHSCROLL varsa, metin dikdörtgenin sağ kenarında kırpılır.

rect.bottom rectLayout nesnesinin öğesi, dikdörtgenin boyutlarının özgün dikdörtgenin metin tarafından kaplanan bölümünü tanımlaması için değiştirilir.

CEditView::SerializeRaw

Nesnenin CArchive nesnedeki metni bir metin dosyasına okuması veya yazması CEditView için çağrısı SerializeRaw yapın.

void SerializeRaw(CArchive& ar);

Parametreler

Ar
CArchive Serileştirilmiş metni depolayan nesneye başvuru.

Açıklamalar

SerializeRawCEditView, nesne açıklaması verilerinin önüne geçmeden yalnızca metni okuması ve yazması bakımından 'nin iç uygulamasından Serialize farklıdır.

CEditView::SetPrinterFont

Yazıcı yazı tipini pFont tarafından belirtilen yazı tipine ayarlamak için çağırınSetPrinterFont.

void SetPrinterFont(CFont* pFont);

Parametreler

pFont
türünde CFontbir nesnenin işaretçisi. NULL ise, yazdırma için kullanılan yazı tipi görüntüleme yazı tipini temel alır.

Açıklamalar

Görünümünüzün yazdırma için her zaman belirli bir yazı tipini kullanmasını istiyorsanız, sınıfınızın OnPreparePrinting işlevine SetPrinterFont bir çağrısı ekleyin. Yazdırma gerçekleşmeden önce bu sanal işlev çağrılır, bu nedenle yazı tipi değişikliği görünümün içeriği yazdırılmadan önce gerçekleşir.

CEditView::SetTabStops

Görüntüleme ve yazdırma için kullanılan sekme duraklarını ayarlamak için bu işlevi çağırın.

void SetTabStops(int nTabStops);

Parametreler

nTabStops
İletişim birimlerindeki her sekme durağının genişliği.

Açıklamalar

Yalnızca tek bir sekme durağı genişliği desteklenir. ( CEdit nesneler birden çok sekme genişliğini destekler.) Genişlikler, yazdırma veya görüntüleme sırasında kullanılan yazı tipinin ortalama karakter genişliğinin dörtte birine eşit (yalnızca büyük ve küçük harfli alfabetik karakterlere göre) iletişim birimlerindedir. Sekme durağı değerini önbelleğe alması gerektiğinden kullanmamalısınız CEdit::SetTabStopsCEditView .

Bu işlev yalnızca çağrıldığı nesnenin sekmelerini değiştirir. Uygulamanızdaki her CEditView nesnenin sekme duraklarını değiştirmek için her nesnenin işlevini çağırın SetTabStops .

Örnek

Bu kod parçası, denetimin kullandığı yazı tipini dikkatle ölçerek denetimdeki sekme duraklarını dördüncü karaktere ayarlar.

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

Arabelleğin kilidini açmak için bu üye işlevini çağırın.

void UnlockBuffer() const;

Açıklamalar

LockBuffer tarafından döndürülen işaretçiyi kullanmayı bitirdikten sonra çağırınUnlockBuffer.

Ayrıca bkz.

MFC Örneği SUPERPAD
CCtrlView Sınıfı
Hiyerarşi Grafiği
CEdit Sınıfı
CDocument Sınıfı
CDocTemplate Sınıfı
CCtrlView Sınıfı
CRichEditView Sınıfı