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
Veri Akışı Adı | Açıklama |
---|---|
CEditView::CEditView | türünde CEditView bir nesnesi oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CEditView::FindText | Metin içinde bir dize arar. |
CEditView::GetBufferLength | Karakter arabelleğinin uzunluğunu alır. |
CEditView::GetEditCtrl | Nesnenin CEdit CEditView 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
Veri Akışı Adı | Açıklama |
---|---|
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
Veri Akışı Adı | Açıklama |
---|---|
CEditView::d wStyleDefault | türünde CEditView nesneler için varsayılan stil. |
Açıklamalar
CEditView
sınıfı aşağıdaki ek işlevleri sağlar:
Yazdırmak.
Bulma ve değiştirme.
sınıfı CEditView
sınıfının bir türevi CView
olduğ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 CEditView
tü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 denetimleCEdit
aynıdır.
hakkında CEditView
daha fazla bilgi için bkz . MFC'de Kullanılabilen Türetilmiş Görünüm Sınıfları.
Devralma Hiyerarşisi
CEditView
Gereksinimler
Üst bilgi: afxext.h
CEditView::CEditView
türünde CEditView
bir 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::AddDocTemplate
bunu ş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.
Dönüş 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 OnFindNext
sürece işlevini çağırmanız FindText
FindText
gerekmez.
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;
Dönüş 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;
Dönüş 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;
Dönüş 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;
Dönüş 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 CEditView
metin 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
OnReplaceAll
bCase 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 CEditView
nesnenin 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 CEditView
nesnenin 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 MessageBeep
geç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.
Dönüş 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
SerializeRaw
CEditView
, 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 CFont
bir 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::SetTabStops
CEditView
.
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ı