Kelas CFindReplaceDialog
Memungkinkan Anda menerapkan kotak dialog Temukan/Ganti string standar di aplikasi Anda.
Sintaks
class CFindReplaceDialog : public CCommonDialog
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CFindReplaceDialog::CFindReplaceDialog | Panggil fungsi ini untuk membuat CFindReplaceDialog objek. |
Metode Publik
Nama | Deskripsi |
---|---|
CFindReplaceDialog::Create | Membuat dan menampilkan CFindReplaceDialog kotak dialog. |
CFindReplaceDialog::FindNext | Panggil fungsi ini untuk menentukan apakah pengguna ingin menemukan kemunculan berikutnya dari string temukan. |
CFindReplaceDialog::GetFindString | Panggil fungsi ini untuk mengambil string temuan saat ini. |
CFindReplaceDialog::GetNotifier | Panggil fungsi ini untuk mengambil FINDREPLACE struktur di handler pesan terdaftar Anda. |
CFindReplaceDialog::GetReplaceString | Panggil fungsi ini untuk mengambil string pengganti saat ini. |
CFindReplaceDialog::IsTerminating | Panggil fungsi ini untuk menentukan apakah kotak dialog dihentikan. |
CFindReplaceDialog::MatchCase | Panggil fungsi ini untuk menentukan apakah pengguna ingin mencocokkan kasus string temukan dengan tepat. |
CFindReplaceDialog::MatchWholeWord | Panggil fungsi ini untuk menentukan apakah pengguna hanya ingin mencocokkan seluruh kata. |
CFindReplaceDialog::ReplaceAll | Panggil fungsi ini untuk menentukan apakah pengguna ingin semua kemunculan string diganti. |
CFindReplaceDialog::ReplaceCurrent | Panggil fungsi ini untuk menentukan apakah pengguna ingin kata saat ini diganti. |
CFindReplaceDialog::SearchDown | Panggil fungsi ini untuk menentukan apakah pengguna ingin pencarian dilanjutkan ke arah bawah. |
Anggota Data Publik
Nama | Deskripsi |
---|---|
CFindReplaceDialog::m_fr | Struktur yang CFindReplaceDialog digunakan untuk menyesuaikan objek. |
Keterangan
Tidak seperti kotak dialog umum Windows lainnya, CFindReplaceDialog
objek tidak memiliki mode, memungkinkan pengguna berinteraksi dengan jendela lain saat mereka berada di layar. Ada dua jenis CFindReplaceDialog
objek: Temukan kotak dialog dan kotak dialog Temukan/Ganti. Meskipun kotak dialog memungkinkan pengguna untuk memasukkan string pencarian dan pencarian/penggantian, mereka tidak melakukan fungsi pencarian atau penggantian apa pun. Anda harus menambahkan ini ke aplikasi.
Untuk membuat CFindReplaceDialog
objek, gunakan konstruktor yang disediakan (yang tidak memiliki argumen). Karena ini adalah kotak dialog tanpa mode, alokasikan objek pada tumpukan menggunakan new
operator, bukan pada tumpukan.
CFindReplaceDialog
Setelah objek dibuat, Anda harus memanggil fungsi Buat anggota untuk membuat dan menampilkan kotak dialog.
Gunakan struktur m_fr untuk menginisialisasi kotak dialog sebelum memanggil Create
. Strukturnya m_fr
berjenis FINDREPLACE. Untuk informasi selengkapnya tentang struktur ini, lihat Windows SDK.
Agar jendela induk diberi tahu tentang permintaan temukan/ganti, Anda harus menggunakan fungsi Windows RegisterWindowMessage dan menggunakan makro peta pesan ON_REGISTERED_MESSAGE di jendela bingkai Anda yang menangani pesan terdaftar ini.
Anda dapat menentukan apakah pengguna telah memutuskan untuk mengakhiri kotak dialog dengan IsTerminating
fungsi anggota.
CFindReplaceDialog
bergantung pada file COMMDLG.DLL yang dikirim dengan Windows versi 3.1 dan yang lebih baru.
Untuk mengkustomisasi kotak dialog, dapatkan kelas dari CFindReplaceDialog
, sediakan templat dialog kustom, dan tambahkan peta pesan untuk memproses pesan pemberitahuan dari kontrol yang diperluas. Setiap pesan yang tidak diolah harus diteruskan ke kelas dasar.
Menyesuaikan fungsi kait tidak diperlukan.
Untuk informasi selengkapnya tentang menggunakan CFindReplaceDialog
, lihat Kelas Dialog Umum.
Hierarki Warisan
CFindReplaceDialog
Persyaratan
Header: afxdlgs.h
CFindReplaceDialog::CFindReplaceDialog
Membuat CFindReplaceDialog
objek.
CFindReplaceDialog();
Keterangan
CFindReplaceDialog
Karena objek adalah kotak dialog tanpa mode, Anda harus membangunnya di timbunan dengan menggunakan new
operator.
Selama penghancuran, kerangka kerja mencoba melakukan delete this;
pada penunjuk ke kotak dialog. Jika Anda membuat kotak dialog pada tumpukan, this
penunjuk tidak ada dan perilaku yang tidak ditentukan dapat mengakibatkan.
Untuk informasi selengkapnya tentang konstruksi CFindReplaceDialog
objek, lihat gambaran umum CFindReplaceDialog . Gunakan fungsi CFindReplaceDialog::Create member untuk menampilkan kotak dialog.
Contoh
// m_pFRDlg is a pointer to a class derived from CFindReplaceDialog
// which defines variables used by the FINDREPLACE structure.
// InitFindReplaceDlg creates a CFindReplaceDialog and initializes
// the m_fr with the data members from the derived class
void CMyRichEditView::InitFindReplaceDlg()
{
if (NULL == m_pFRDlg)
{
m_pFRDlg = new CMyFindReplaceDialog(); // Must be created on the heap
m_pFRDlg->Create(TRUE, _T(""), _T(""), FR_DOWN, this);
m_pFRDlg->m_fr.lStructSize = sizeof(FINDREPLACE);
m_pFRDlg->m_fr.hwndOwner = this->m_hWnd;
m_pFRDlg->m_fr.lpstrFindWhat = m_pFRDlg->GetFindWhatStr();
m_pFRDlg->m_fr.lpstrReplaceWith = m_pFRDlg->GetReplaceWithStr();
m_pFRDlg->m_fr.wFindWhatLen = m_pFRDlg->GetFindWhatStrLen();
m_pFRDlg->m_fr.wReplaceWithLen = m_pFRDlg->GetReplaceWithStrLen();
}
}
CFindReplaceDialog::Create
Membuat dan menampilkan objek kotak dialog Temukan atau Temukan/Ganti, bergantung pada nilai bFindDialogOnly
.
virtual BOOL Create(
BOOL bFindDialogOnly,
LPCTSTR lpszFindWhat,
LPCTSTR lpszReplaceWith = NULL,
DWORD dwFlags = FR_DOWN,
CWnd* pParentWnd = NULL);
Parameter
bFindDialogOnly
Atur parameter ini ke TRUE untuk menampilkan kotak dialog Temukan . Atur ke FALSE untuk menampilkan kotak dialog Temukan/Ganti .
lpszFindWhat
Arahkan ke string pencarian default saat kotak dialog muncul. Jika NULL, kotak dialog tidak berisi string pencarian default.
lpszReplaceWith
Penunjuk ke string pengganti default saat kotak dialog muncul. Jika NULL, kotak dialog tidak berisi string pengganti default.
dwFlags
Satu atau beberapa bendera yang dapat Anda gunakan untuk menyesuaikan pengaturan kotak dialog, dikombinasikan menggunakan operator OR bitwise. Nilai default adalah FR_DOWN, yang menentukan bahwa pencarian adalah melanjutkan ke arah bawah. Lihat struktur FINDREPLACE di Windows SDK untuk informasi selengkapnya tentang bendera ini.
pParentWnd
Penunjuk ke jendela induk atau pemilik kotak dialog. Ini adalah jendela yang akan menerima pesan khusus yang menunjukkan bahwa tindakan temukan/ganti diminta. Jika NULL, jendela utama aplikasi digunakan.
Tampilkan Nilai
Bukan nol jika objek kotak dialog berhasil dibuat; jika tidak, 0.
Keterangan
Agar jendela induk diberi tahu tentang permintaan find/replace, Anda harus menggunakan fungsi Windows RegisterWindowMessage yang nilai pengembaliannya adalah nomor pesan yang unik untuk instans aplikasi. Jendela bingkai Anda harus memiliki entri peta pesan yang mendeklarasikan fungsi panggilan balik ( OnFindReplace
dalam contoh berikut) yang menangani pesan terdaftar ini. Fragmen kode berikut adalah contoh cara melakukan ini untuk kelas jendela bingkai bernama CMyRichEditView
:
// Message handler declared in CMyRichEditView class declaration
protected:
afx_msg LONG OnFindReplace(WPARAM wParam, LPARAM lParam);
// Register FindReplace window message.
static UINT WM_FINDREPLACE = ::RegisterWindowMessage(FINDMSGSTRING);
// Message map entry to map from message to handler function.
ON_REGISTERED_MESSAGE(WM_FINDREPLACE, &CMyRichEditView::OnFindReplace)
Dalam fungsi Anda OnFindReplace
, Anda menafsirkan niat pengguna dengan menggunakan metode CFindReplaceDialog::FindNext dan CFindReplaceDialog::IsTerminating dan Anda membuat kode untuk operasi temukan/ganti.
Contoh
Lihat contoh untuk CFindReplaceDialog::CFindReplaceDialog.
CFindReplaceDialog::FindNext
Panggil fungsi ini dari fungsi panggilan balik Anda untuk menentukan apakah pengguna ingin menemukan kemunculan string pencarian berikutnya.
BOOL FindNext() const;
Tampilkan Nilai
Nonzero jika pengguna ingin menemukan kemunculan string pencarian berikutnya; jika tidak, 0.
CFindReplaceDialog::GetFindString
Panggil fungsi ini dari fungsi panggilan balik Anda untuk mengambil string default yang akan ditemukan.
CString GetFindString() const;
Tampilkan Nilai
String default untuk ditemukan.
Contoh
LRESULT CMyRichEditView::OnFindReplace(WPARAM wparam, LPARAM lparam)
{
UNREFERENCED_PARAMETER(wparam);
CFindReplaceDialog *pDlg = CFindReplaceDialog::GetNotifier(lparam);
if (NULL != pDlg)
{
// Use pDlg as a pointer to the existing FindReplace dlg to
// call CFindReplaceDialog member functions
if (pDlg->IsTerminating())
{
CString csFindString;
CString csReplaceString;
csFindString = pDlg->GetFindString();
csReplaceString = pDlg->GetReplaceString();
VERIFY(AfxGetApp()->WriteProfileString(AfxGetApp()->m_pszAppName,
_T("FindString"), csFindString));
VERIFY(AfxGetApp()->WriteProfileString(AfxGetApp()->m_pszAppName,
_T("ReplaceString"), csReplaceString));
}
}
return 0;
}
CFindReplaceDialog::GetNotifier
Panggil fungsi ini untuk mengambil penunjuk ke kotak dialog Temukan Ganti saat ini.
static CFindReplaceDialog* PASCAL GetNotifier(LPARAM lParam);
Parameter
lParam
Nilai lparam diteruskan ke fungsi anggota jendela OnFindReplace
bingkai.
Tampilkan Nilai
Penunjuk ke kotak dialog saat ini.
Keterangan
Ini harus digunakan dalam fungsi panggilan balik Anda untuk mengakses kotak dialog saat ini, memanggil fungsi anggotanya, dan mengakses m_fr
struktur.
Contoh
Lihat CFindReplaceDialog::Buat untuk contoh cara mendaftarkan handler OnFindReplace untuk menerima pemberitahuan dari kotak dialog Temukan Ganti.
LRESULT CMyRichEditView::OnFindReplace(WPARAM wparam, LPARAM lparam)
{
UNREFERENCED_PARAMETER(wparam);
CFindReplaceDialog *pDlg = CFindReplaceDialog::GetNotifier(lparam);
if (NULL != pDlg)
{
// Use pDlg as a pointer to the existing FindReplace dlg to
// call CFindReplaceDialog member functions
if (pDlg->IsTerminating())
{
CString csFindString;
CString csReplaceString;
csFindString = pDlg->GetFindString();
csReplaceString = pDlg->GetReplaceString();
VERIFY(AfxGetApp()->WriteProfileString(AfxGetApp()->m_pszAppName,
_T("FindString"), csFindString));
VERIFY(AfxGetApp()->WriteProfileString(AfxGetApp()->m_pszAppName,
_T("ReplaceString"), csReplaceString));
}
}
return 0;
}
CFindReplaceDialog::GetReplaceString
Panggil fungsi ini untuk mengambil string pengganti saat ini.
CString GetReplaceString() const;
Tampilkan Nilai
String default untuk mengganti string yang ditemukan.
Contoh
Lihat contoh untuk CFindReplaceDialog::GetFindString.
CFindReplaceDialog::IsTerminating
Panggil fungsi ini dalam fungsi panggilan balik Anda untuk menentukan apakah pengguna telah memutuskan untuk mengakhiri kotak dialog.
BOOL IsTerminating() const;
Tampilkan Nilai
Bukan nol jika pengguna telah memutuskan untuk mengakhiri kotak dialog; jika tidak, 0.
Contoh
Lihat contoh untuk CFindReplaceDialog::GetFindString.
CFindReplaceDialog::m_fr
Digunakan untuk menyesuaikan CFindReplaceDialog
objek.
FINDREPLACE m_fr;
Keterangan
m_fr
adalah struktur jenis FINDREPLACE. Anggotanya menyimpan karakteristik objek kotak dialog. Setelah membuat CFindReplaceDialog
objek, Anda dapat menggunakan m_fr
untuk mengubah berbagai nilai dalam kotak dialog.
Untuk informasi selengkapnya tentang struktur ini, lihat FINDREPLACE
struktur di Windows SDK.
Contoh
Lihat contoh untuk CFindReplaceDialog::CFindReplaceDialog.
CFindReplaceDialog::MatchCase
Panggil fungsi ini untuk menentukan apakah pengguna ingin mencocokkan kasus string temukan dengan tepat.
BOOL MatchCase() const;
Tampilkan Nilai
Nonzero jika pengguna ingin menemukan kemunculan string pencarian yang sama persis dengan kasus string pencarian; jika tidak, 0.
CFindReplaceDialog::MatchWholeWord
Panggil fungsi ini untuk menentukan apakah pengguna hanya ingin mencocokkan seluruh kata.
BOOL MatchWholeWord() const;
Tampilkan Nilai
Nonzero jika pengguna hanya ingin mencocokkan seluruh kata dari string pencarian; jika tidak, 0.
CFindReplaceDialog::ReplaceAll
Panggil fungsi ini untuk menentukan apakah pengguna ingin semua kemunculan string diganti.
BOOL ReplaceAll() const;
Tampilkan Nilai
Bukan nol jika pengguna telah meminta agar semua string yang cocok dengan string penggantian diganti; jika tidak, 0.
CFindReplaceDialog::ReplaceCurrent
Panggil fungsi ini untuk menentukan apakah pengguna ingin kata saat ini diganti.
BOOL ReplaceCurrent() const;
Tampilkan Nilai
Bukan nol jika pengguna telah meminta agar string yang saat ini dipilih diganti dengan string pengganti; jika tidak, 0.
CFindReplaceDialog::SearchDown
Panggil fungsi ini untuk menentukan apakah pengguna ingin pencarian dilanjutkan ke arah bawah.
BOOL SearchDown() const;
Tampilkan Nilai
Nonzero jika pengguna ingin pencarian dilanjutkan ke arah bawah; 0 jika pengguna ingin pencarian dilanjutkan ke arah atas.