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 untukCEdit
kontrol.
Untuk informasi selengkapnya tentang CEditView
, lihat Kelas Tampilan Turunan yang Tersedia di MFC.
Hierarki Warisan
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 OnFindNext
alih , 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 CEditView
objek -turunan mencari teks. CEditView
OnFindNext
panggilan saat pengguna memilih tombol Temukan Berikutnya di kotak dialog Temukan standar.
CEditView::OnReplaceAll
CEditView
OnReplaceAll
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 CEditView
objek -turunan mengganti teks.
CEditView::OnReplaceSel
CEditView
OnReplaceSel
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 CEditView
objek -turunan menggantikan teks yang dipilih.
CEditView::OnTextNotFound
Ambil alih fungsi ini untuk mengubah implementasi default, yang memanggil fungsi MessageBeep
Windows .
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 CEditView
implementasi 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