Bagikan melalui


Kelas CEditView

Jenis kelas tampilan yang menyediakan fungsionalitas kontrol edit Windows dan dapat digunakan untuk menerapkan fungsionalitas editor teks sederhana.

Sintaks

class CEditView : public CCtrlView

Anggota

Konstruktor Publik

Nama Deskripsi
CEditView::CEditView Membuat objek jenis CEditView.

Metode Publik

Nama Deskripsi
CEditView::FindText Mencari string dalam teks.
CEditView::GetBufferLength Mendapatkan panjang buffer karakter.
CEditView::GetEditCtrl Menyediakan akses ke CEdit bagian CEditView objek (kontrol edit Windows).
CEditView::GetPrinterFont Mengambil fon pencetak saat ini.
CEditView::GetSelectedText Mengambil pilihan teks saat ini.
CEditView::LockBuffer Mengunci buffer.
CEditView::P rintInsideRect Merender teks di dalam persegi panjang tertentu.
CEditView::SerializeRaw Menserialisasi objek CEditView ke disk sebagai teks mentah.
CEditView::SetPrinterFont Menyetel fon pencetak baru.
CEditView::SetTabStops Mengatur perhentian tab untuk tampilan layar dan pencetakan.
CEditView::UnlockBuffer Membuka kunci buffer.

Metode yang Dilindungi

Nama Deskripsi
CEditView::OnFindNext Menemukan kemunculan string teks berikutnya.
CEditView::OnReplaceAll Mengganti semua kemunculan string tertentu dengan string baru.
CEditView::OnReplaceSel Menggantikan pilihan saat ini.
CEditView::OnTextNotFound Dipanggil ketika operasi temukan gagal mencocokkan teks lebih lanjut.

Anggota Data Publik

Nama Deskripsi
CEditView::d wStyleDefault Gaya default untuk objek jenis CEditView.

Keterangan

Kelas ini CEditView menyediakan fungsi tambahan berikut:

  • Cetak.

  • Temukan dan ganti.

Karena kelas CEditView adalah turunan dari kelas CView, objek kelas CEditView dapat digunakan dengan dokumen dan templat dokumen.

Setiap CEditView teks kontrol disimpan dalam objek memori globalnya sendiri. Aplikasi Anda dapat memiliki sejumlah CEditView objek.

Buat objek jenis CEditView jika Anda menginginkan jendela edit dengan fungsionalitas tambahan yang tercantum di atas, atau jika Anda menginginkan fungsionalitas editor teks sederhana. Objek CEditView dapat menempati seluruh area klien jendela. Dapatkan kelas Anda sendiri dari CEditView untuk menambahkan atau memodifikasi fungsionalitas dasar, atau untuk mendeklarasikan kelas yang dapat ditambahkan ke templat dokumen.

Implementasi default kelas CEditView menangani perintah berikut: ID_EDIT_SELECT_ALL, ID_EDIT_FIND, ID_EDIT_REPLACE, ID_EDIT_REPEAT, dan ID_FILE_PRINT.

Batas karakter default untuk CEditView adalah (1024 * 1024 - 1 = 1048575). Ini dapat diubah dengan memanggil fungsi EM_LIMITTEXT kontrol edit yang mendasar. Namun, batasnya berbeda tergantung pada sistem operasi dan jenis kontrol edit (tunggal atau multibaris). Untuk informasi selengkapnya tentang batas ini, lihat EM_LIMITTEXT.

Untuk mengubah batas ini dalam kontrol Anda, ambil alih OnCreate() fungsi untuk kelas Anda CEditView dan sisipkan baris kode berikut:

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

Objek jenis CEditView (atau jenis yang berasal dari CEditView) memiliki batasan berikut:

  • CEditView tidak menerapkan benar apa yang Anda lihat adalah apa yang Anda dapatkan (WYSIWYG) pengeditan. Di mana ada pilihan antara keterbacaan pada layar dan output cetak yang cocok, CEditView memilih keterbacaan layar.

  • CEditView dapat menampilkan teks hanya dalam satu font. Tidak ada pemformatan karakter khusus yang didukung. Lihat kelas CRichEditView untuk kemampuan yang lebih besar.

  • Jumlah teks yang dapat dimuat CEditView terbatas. Batasannya sama dengan untuk CEdit kontrol.

Untuk informasi selengkapnya tentang CEditView, lihat Kelas Tampilan Turunan yang Tersedia di MFC.

Hierarki Warisan

CObject

CCmdTarget

CWnd

CView

CCtrlView

CEditView

Persyaratan

Header: afxext.h

CEditView::CEditView

Membuat objek jenis CEditView.

CEditView();

Keterangan

Setelah membuat objek, Anda harus memanggil fungsi CWnd::Create sebelum kontrol edit digunakan. Jika Anda mendapatkan kelas dari CEditView dan menambahkannya ke templat menggunakan CWinApp::AddDocTemplate, kerangka kerja memanggil konstruktor ini dan Create fungsi .

CEditView::d wStyleDefault

Berisi gaya CEditView default objek.

static const DWORD dwStyleDefault;

Keterangan

Teruskan anggota statis ini sebagai parameter dwStyle fungsi Create untuk mendapatkan gaya default untuk CEditView objek.

CEditView::FindText

FindText Panggil fungsi untuk mencari CEditView buffer teks objek.

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

Parameter

lpszFind
Teks yang akan ditemukan.

bNext
Menentukan arah pencarian. Jika TRUE, arah pencarian menuju akhir buffer. Jika FALSE, arah pencarian adalah menuju awal buffer.

bCase
Menentukan apakah pencarian peka huruf besar/kecil. Jika TRUE, pencarian peka huruf besar/kecil. Jika FALSE, pencarian tidak peka huruf besar/kecil.

Tampilkan Nilai

Bukan nol jika teks pencarian ditemukan; jika tidak, 0.

Keterangan

Fungsi ini mencari teks dalam buffer untuk teks yang ditentukan oleh lpszFind, dimulai pada pilihan saat ini, dalam arah yang ditentukan oleh bNext, dan dengan sensitivitas huruf besar/kecil yang ditentukan oleh bCase. Jika teks ditemukan, teks mengatur pilihan ke teks yang ditemukan dan mengembalikan nilai bukan nol. Jika teks tidak ditemukan, fungsi mengembalikan 0.

Anda biasanya tidak perlu memanggil FindText fungsi kecuali Anda mengambil OnFindNextalih , yang memanggil FindText.

CEditView::GetBufferLength

Panggil fungsi anggota ini untuk mendapatkan jumlah karakter yang saat ini ada di buffer kontrol edit, tidak termasuk terminator null.

UINT GetBufferLength() const;

Tampilkan Nilai

Panjang string dalam buffer.

CEditView::GetEditCtrl

Panggil GetEditCtrl untuk mendapatkan referensi ke kontrol edit yang digunakan oleh tampilan edit.

CEdit& GetEditCtrl() const;

Tampilkan Nilai

Referensi ke CEdit objek.

Keterangan

Kontrol ini berjenis CEdit, sehingga Anda dapat memanipulasi kontrol edit Windows secara langsung menggunakan CEdit fungsi anggota.

Perhatian

CEdit Menggunakan objek dapat mengubah status kontrol edit Windows yang mendasar. Misalnya, Anda tidak boleh mengubah pengaturan tab menggunakan fungsi CEdit::SetTabStops karena CEditView menyimpan cache pengaturan ini untuk digunakan baik dalam kontrol edit maupun dalam pencetakan. Sebagai gantinya, gunakan CEditView::SetTabStops.

Contoh

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

Panggil GetPrinterFont untuk mendapatkan penunjuk ke objek CFont yang menjelaskan font printer saat ini.

CFont* GetPrinterFont() const;

Tampilkan Nilai

Penunjuk ke CFont objek yang menentukan font printer saat ini; NULL jika font printer belum disetel. Penunjuk mungkin bersifat sementara dan tidak boleh disimpan untuk digunakan nanti.

Keterangan

Jika font printer belum diatur, perilaku pencetakan CEditView default kelas adalah mencetak menggunakan font yang sama yang digunakan untuk tampilan.

Gunakan fungsi ini untuk menentukan font pencetak saat ini. Jika bukan font printer yang diinginkan, gunakan CEditView::SetPrinterFont untuk mengubahnya.

CEditView::GetSelectedText

Panggil GetSelectedText untuk menyalin teks yang dipilih ke dalam CString objek, hingga akhir pilihan atau karakter yang mendahului karakter carriage-return pertama dalam pilihan.

void GetSelectedText(CString& strResult) const;

Parameter

strResult
Referensi ke CString objek yang akan menerima teks yang dipilih.

CEditView::LockBuffer

Panggil fungsi anggota ini untuk mendapatkan penunjuk ke buffer. Buffer tidak boleh dimodifikasi.

LPCTSTR LockBuffer() const;

Tampilkan Nilai

Penunjuk ke buffer kontrol edit.

CEditView::OnFindNext

Mencari teks dalam buffer untuk teks yang ditentukan oleh lpszFind, dalam arah yang ditentukan oleh bNext, dengan sensitivitas huruf besar/kecil yang ditentukan oleh bCase.

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

Parameter

lpszFind
Teks yang akan ditemukan.

bNext
Menentukan arah pencarian. Jika TRUE, arah pencarian menuju akhir buffer. Jika FALSE, arah pencarian adalah menuju awal buffer.

bCase
Menentukan apakah pencarian peka huruf besar/kecil. Jika TRUE, pencarian peka huruf besar/kecil. Jika FALSE, pencarian tidak peka huruf besar/kecil.

Keterangan

Pencarian dimulai di awal pilihan saat ini dan dicapai melalui panggilan ke FindText. Dalam implementasi default, OnFindNext memanggil OnTextNotFound jika teks tidak ditemukan.

Ambil alih OnFindNext untuk mengubah cara CEditViewobjek -turunan mencari teks. CEditViewOnFindNext panggilan saat pengguna memilih tombol Temukan Berikutnya di kotak dialog Temukan standar.

CEditView::OnReplaceAll

CEditViewOnReplaceAll panggilan saat pengguna memilih tombol Ganti Semua dalam kotak dialog Ganti standar.

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

Parameter

lpszFind
Teks yang akan ditemukan.

lpszReplace
Teks untuk mengganti teks pencarian.

bCase
Menentukan apakah pencarian peka huruf besar/kecil. Jika TRUE, pencarian peka huruf besar/kecil. Jika FALSE, pencarian tidak peka huruf besar/kecil.

Keterangan

OnReplaceAll mencari teks dalam buffer untuk teks yang ditentukan oleh lpszFind, dengan sensitivitas huruf besar/kecil yang ditentukan oleh bCase. Pencarian dimulai pada awal pilihan saat ini. Setiap kali teks pencarian ditemukan, fungsi ini menggantikan kemunculan teks dengan teks yang ditentukan oleh lpszReplace. Pencarian dilakukan melalui panggilan ke FindText. Dalam implementasi default, OnTextNotFound dipanggil jika teks tidak ditemukan.

Jika pilihan saat ini tidak cocok dengan lpszFind, pilihan diperbarui ke kemunculan pertama teks yang ditentukan oleh lpszFind dan penggantian tidak dilakukan. Ini memungkinkan pengguna untuk mengonfirmasi bahwa ini adalah apa yang ingin mereka lakukan ketika pilihan tidak cocok dengan teks yang akan diganti.

Ambil alih OnReplaceAll untuk mengubah cara CEditViewobjek -turunan mengganti teks.

CEditView::OnReplaceSel

CEditViewOnReplaceSel panggilan saat pengguna memilih tombol Ganti di kotak dialog Ganti standar.

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

Parameter

lpszFind
Teks yang akan ditemukan.

bNext
Menentukan arah pencarian. Jika TRUE, arah pencarian menuju akhir buffer. Jika FALSE, arah pencarian adalah menuju awal buffer.

bCase
Menentukan apakah pencarian peka huruf besar/kecil. Jika TRUE, pencarian peka huruf besar/kecil. Jika FALSE, pencarian tidak peka huruf besar/kecil.

lpszReplace
Teks untuk mengganti teks yang ditemukan.

Keterangan

Setelah mengganti pilihan, fungsi ini mencari teks dalam buffer untuk kemunculan teks berikutnya yang ditentukan oleh lpszFind, dalam arah yang ditentukan oleh bNext, dengan sensitivitas huruf besar/kecil yang ditentukan oleh bCase. Pencarian dilakukan melalui panggilan ke FindText. Jika teks tidak ditemukan, OnTextNotFound dipanggil.

Ambil alih OnReplaceSel untuk mengubah cara CEditViewobjek -turunan menggantikan teks yang dipilih.

CEditView::OnTextNotFound

Ambil alih fungsi ini untuk mengubah implementasi default, yang memanggil fungsi MessageBeepWindows .

virtual void OnTextNotFound(LPCTSTR lpszFind);

Parameter

lpszFind
Teks yang akan ditemukan.

CEditView::P rintInsideRect

Panggil PrintInsideRect untuk mencetak teks dalam persegi yang ditentukan oleh rectLayout.

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

Parameter

pDC
Arahkan ke konteks perangkat printer.

rectLayout
Referensi ke objek CRect atau struktur RECT yang menentukan persegi panjang tempat teks akan dirender.

nIndexStart
Indeks dalam buffer karakter pertama yang akan dirender.

nIndexStop
Indeks dalam buffer karakter setelah karakter terakhir yang akan dirender.

Tampilkan Nilai

Indeks karakter berikutnya yang akan dicetak (yaitu, karakter setelah karakter terakhir yang dirender).

Keterangan

CEditView Jika kontrol tidak memiliki gaya ES_AUTOHSCROLL, teks dibungkus dalam persegi panjang penyajian. Jika kontrol memiliki gaya ES_AUTOHSCROLL, teks diklip di tepi kanan persegi.

Elemen rect.bottom objek rectLayout diubah sehingga dimensi persegi panjang menentukan bagian persegi panjang asli yang ditempati oleh teks.

CEditView::SerializeRaw

Panggil SerializeRaw agar CArchive objek membaca atau menulis teks dalam CEditView objek ke file teks.

void SerializeRaw(CArchive& ar);

Parameter

Ar
Referensi ke CArchive objek yang menyimpan teks berseri.

Keterangan

SerializeRaw berbeda dari CEditViewimplementasi Serialize internal karena hanya membaca dan menulis teks, tanpa mendahului data deskripsi objek.

CEditView::SetPrinterFont

Panggil SetPrinterFont untuk menyetel font printer ke font yang ditentukan oleh pFont.

void SetPrinterFont(CFont* pFont);

Parameter

pFont
Penunjuk ke objek jenis CFont. Jika NULL, font yang digunakan untuk pencetakan didasarkan pada font tampilan.

Keterangan

Jika Anda ingin tampilan Anda selalu menggunakan font tertentu untuk pencetakan, sertakan panggilan ke SetPrinterFont dalam fungsi kelas OnPreparePrinting Anda. Fungsi virtual ini dipanggil sebelum pencetakan terjadi, sehingga perubahan font terjadi sebelum konten tampilan dicetak.

CEditView::SetTabStops

Panggil fungsi ini untuk mengatur perhentian tab yang digunakan untuk tampilan dan pencetakan.

void SetTabStops(int nTabStops);

Parameter

nTabStops
Lebar setiap perhentian tab, dalam unit dialog.

Keterangan

Hanya lebar berhenti tab tunggal yang didukung. ( CEdit objek mendukung beberapa lebar tab.) Lebar berada dalam unit dialog, yang sama dengan seperempat dari lebar karakter rata-rata (hanya berdasarkan karakter alfabet huruf besar dan kecil) dari font yang digunakan pada saat pencetakan atau tampilan. Anda tidak boleh menggunakan CEdit::SetTabStops karena CEditView harus menyimpan cache nilai tab-stop.

Fungsi ini hanya memodifikasi tab objek yang dipanggilnya. Untuk mengubah perhentian tab untuk setiap CEditView objek di aplikasi Anda, panggil fungsi setiap objek SetTabStops .

Contoh

Fragmen kode ini mengatur tab berhenti dalam kontrol ke setiap karakter keempat dengan mengukur font yang digunakan kontrol dengan hati-hati.

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

Panggil fungsi anggota ini untuk membuka kunci buffer.

void UnlockBuffer() const;

Keterangan

Panggil UnlockBuffer setelah Anda selesai menggunakan pointer yang dikembalikan oleh LockBuffer.

Lihat juga

Sampel MFC SUPERPAD
Kelas CCtrlView
Bagan Hierarki
Kelas CEdit
Kelas CDocument
Kelas CDocTemplate
Kelas CCtrlView
Kelas CRichEditView