CFindReplaceDialog Sınıfı
Uygulamanızda standart dize Bul/Değiştir iletişim kutularını uygulamanıza olanak tanır.
Sözdizimi
class CFindReplaceDialog : public CCommonDialog
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CFindReplaceDialog::CFindReplaceDialog | Nesne oluşturmak CFindReplaceDialog için bu işlevi çağır. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CFindReplaceDialog::Create | Bir CFindReplaceDialog iletişim kutusu oluşturur ve görüntüler. |
CFindReplaceDialog::FindNext | Kullanıcının bulma dizesinin bir sonraki oluşumunu bulmak isteyip istemediğini belirlemek için bu işlevi çağırın. |
CFindReplaceDialog::GetFindString | Geçerli bulma dizesini almak için bu işlevi çağırın. |
CFindReplaceDialog::GetNotifier | Kayıtlı ileti işleyicinizdeki yapıyı FINDREPLACE almak için bu işlevi çağırın. |
CFindReplaceDialog::GetReplaceString | Geçerli değiştirme dizesini almak için bu işlevi çağırın. |
CFindReplaceDialog::IsTerminating | İletişim kutusunun sonlandırıcı olup olmadığını belirlemek için bu işlevi çağırın. |
CFindReplaceDialog::MatchCase | Kullanıcının bulma dizesinin büyük/küçük harfle tam olarak eşleşmesini isteyip istemediğini belirlemek için bu işlevi çağırın. |
CFindReplaceDialog::MatchWholeWord | Kullanıcının yalnızca sözcüklerin tamamını eşleştirmek isteyip istemediğini belirlemek için bu işlevi çağırın. |
CFindReplaceDialog::ReplaceAll | Kullanıcının dizenin tüm oluşumlarının değiştirilmesini isteyip istemediğini belirlemek için bu işlevi çağırın. |
CFindReplaceDialog::ReplaceCurrent | Kullanıcının geçerli sözcüğün değiştirilmesini isteyip istemediğini belirlemek için bu işlevi çağırın. |
CFindReplaceDialog::SearchDown | Kullanıcının aramanın aşağı doğru ilerlemesini isteyip istemediğini belirlemek için bu işlevi çağırın. |
Ortak Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CFindReplaceDialog::m_fr | Nesneyi özelleştirmek için kullanılan bir CFindReplaceDialog yapı. |
Açıklamalar
Diğer Windows ortak iletişim kutularının aksine, CFindReplaceDialog
nesneler modelessdir ve kullanıcıların ekrandayken diğer pencerelerle etkileşim kurmasına olanak sağlar. İki tür CFindReplaceDialog
nesne vardır: Bul iletişim kutuları ve Bul/Değiştir iletişim kutuları. İletişim kutuları kullanıcının arama ve arama/değiştirme dizeleri eklemesine izin verse de, arama veya değiştirme işlevlerini gerçekleştirmez. Bunları uygulamaya eklemeniz gerekir.
Bir CFindReplaceDialog
nesne oluşturmak için sağlanan oluşturucuyu kullanın (bağımsız değişkeni yoktur). Bu modsuz bir iletişim kutusu olduğundan, yığın yerine işlecini new
kullanarak yığındaki nesneyi ayırın.
Bir CFindReplaceDialog
nesne oluşturulduktan sonra, iletişim kutusunu oluşturmak ve görüntülemek için Üye oluştur işlevini çağırmanız gerekir.
çağrısından Create
önce iletişim kutusunu başlatmak için m_fr yapısını kullanın. Yapı m_fr
FINDREPLACE türündedir. Bu yapı hakkında daha fazla bilgi için bkz. Windows SDK'sı.
Üst pencerenin bulma/değiştirme isteklerine bildirilmesi için Windows RegisterWindowMessage işlevini ve çerçeve pencerenizde bu kayıtlı iletiyi işleyen ON_REGISTERED_MESSAGE ileti eşleme makrosunu kullanmanız gerekir.
Kullanıcının üye işleviyle IsTerminating
iletişim kutusunu sonlandırmaya karar verip vermediğini belirleyebilirsiniz.
CFindReplaceDialog
, Windows 3.1 ve sonraki sürümleriyle birlikte gelen COMMDLG.DLL dosyasına dayanır.
İletişim kutusunu özelleştirmek için öğesinden CFindReplaceDialog
bir sınıf türetin, özel bir iletişim kutusu şablonu sağlayın ve genişletilmiş denetimlerden gelen bildirim iletilerini işlemek için bir ileti eşlemesi ekleyin. İşlenmemiş iletiler temel sınıfa geçirilmelidir.
Kanca işlevini özelleştirmek gerekli değildir.
kullanma CFindReplaceDialog
hakkında daha fazla bilgi için bkz . Ortak İletişim Kutusu Sınıfları.
Devralma Hiyerarşisi
CFindReplaceDialog
Gereksinimler
Üst bilgi: afxdlgs.h
CFindReplaceDialog::CFindReplaceDialog
Bir CFindReplaceDialog
nesne oluşturur.
CFindReplaceDialog();
Açıklamalar
CFindReplaceDialog
Nesne, modsuz bir iletişim kutusu olduğundan, işlecini new
kullanarak yığın üzerinde oluşturmanız gerekir.
Yok etme sırasında, çerçeve iletişim kutusunun işaretçisi üzerinde bir delete this;
gerçekleştirmeye çalışır. Yığında iletişim kutusunu oluşturduysanız, this
işaretçi yok ve tanımsız davranış oluşabilir.
Nesnelerin oluşturulması CFindReplaceDialog
hakkında daha fazla bilgi için bkz . CFindReplaceDialog'a genel bakış. İletişim kutusunu görüntülemek için CFindReplaceDialog::Create member işlevini kullanın.
Örnek
// 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
değerine bFindDialogOnly
bağlı olarak Bul veya Bul/Değiştir iletişim kutusu nesnesi oluşturur ve görüntüler.
virtual BOOL Create(
BOOL bFindDialogOnly,
LPCTSTR lpszFindWhat,
LPCTSTR lpszReplaceWith = NULL,
DWORD dwFlags = FR_DOWN,
CWnd* pParentWnd = NULL);
Parametreler
bFindDialogOnly
Bul iletişim kutusunu görüntülemek için bu parametreyi TRUE olarak ayarlayın. Bul/Değiştir iletişim kutusunu görüntülemek için FALSE olarak ayarlayın.
lpszFindWhat
İletişim kutusu görüntülendiğinde varsayılan arama dizesinin işaretçisi. NULL ise, iletişim kutusu varsayılan bir arama dizesi içermez.
lpszReplaceWith
İletişim kutusu görüntülendiğinde varsayılan değiştirme dizesinin işaretçisi. NULL ise, iletişim kutusu varsayılan bir değiştirme dizesi içermez.
dwFlags
İletişim kutusunun ayarlarını özelleştirmek için kullanabileceğiniz bir veya daha fazla bayrak, bit düzeyinde OR işleci kullanılarak birleştirilir. Varsayılan değer, aramanın aşağı doğru ilerletildiğini belirten FR_DOWN değeridir. Bu bayraklar hakkında daha fazla bilgi için Windows SDK'sında FINDREPLACE yapısına bakın.
pParentWnd
İletişim kutusunun üst veya sahip penceresinin işaretçisi. Bu, bulma/değiştirme eyleminin istendiğini belirten özel iletiyi alacak penceredir. NULL ise, uygulamanın ana penceresi kullanılır.
Dönüş Değeri
İletişim kutusu nesnesi başarıyla oluşturulduysa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Üst pencerenin bulma/değiştirme isteklerine bildirilmesi için, dönüş değeri uygulamanın örneğine özgü bir ileti numarası olan Windows RegisterWindowMessage işlevini kullanmanız gerekir. Çerçeve pencerenizde, bu kayıtlı iletiyi işleyen geri çağırma işlevini ( OnFindReplace
aşağıdaki örnekte) bildiren bir ileti eşleme girdisi olmalıdır. Aşağıdaki kod parçası, adlı CMyRichEditView
bir çerçeve penceresi sınıfı için bunun nasıl yapıldığını gösteren bir örnektir:
// 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)
İşlevinizdeOnFindReplace
, CFindReplaceDialog::FindNext ve CFindReplaceDialog::IsTerminating yöntemlerini kullanarak kullanıcının amaçlarını yorumlar ve bulma/değiştirme işlemleri için kod oluşturursunuz.
Örnek
CFindReplaceDialog::CFindReplaceDialog örneğine bakın.
CFindReplaceDialog::FindNext
Kullanıcının arama dizesinin bir sonraki oluşumunu bulmak isteyip istemediğini belirlemek için geri çağırma işlevinizden bu işlevi çağırın.
BOOL FindNext() const;
Dönüş Değeri
Kullanıcı arama dizesinin bir sonraki oluşumunu bulmak istiyorsa sıfır olmayan; aksi takdirde 0.
CFindReplaceDialog::GetFindString
Bu işlevi bulmak için varsayılan dizeyi almak için geri çağırma işlevinizden çağırın.
CString GetFindString() const;
Dönüş Değeri
Bulunacak varsayılan dize.
Örnek
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
Geçerli Değiştir Bul iletişim kutusunun işaretçisini almak için bu işlevi çağırın.
static CFindReplaceDialog* PASCAL GetNotifier(LPARAM lParam);
Parametreler
lParam
Çerçeve penceresinin OnFindReplace
üye işlevine geçirilen lparam değeri.
Dönüş Değeri
Geçerli iletişim kutusunun işaretçisi.
Açıklamalar
Geçerli iletişim kutusuna erişmek, üye işlevlerini çağırmak ve yapıya erişmek m_fr
için geri çağırma işlevinizde kullanılmalıdır.
Örnek
Değiştir Bul iletişim kutusundan bildirim almak için OnFindReplace işleyicisinin nasıl kaydedildiğini gösteren bir örnek için bkz . CFindReplaceDialog::Create .
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
Geçerli değiştirme dizesini almak için bu işlevi çağırın.
CString GetReplaceString() const;
Dönüş Değeri
Bulunan dizelerin değiştirildiği varsayılan dize.
Örnek
CFindReplaceDialog::GetFindString örneğine bakın.
CFindReplaceDialog::IsTerminating
Kullanıcının iletişim kutusunu sonlandırmaya karar verip vermediğini belirlemek için geri çağırma işlevinizin içinde bu işlevi çağırın.
BOOL IsTerminating() const;
Dönüş Değeri
Kullanıcı iletişim kutusunu sonlandırmaya karar verdiyse sıfır olmayan; aksi takdirde 0.
Örnek
CFindReplaceDialog::GetFindString örneğine bakın.
CFindReplaceDialog::m_fr
Nesneyi CFindReplaceDialog
özelleştirmek için kullanılır.
FINDREPLACE m_fr;
Açıklamalar
m_fr
FINDREPLACE türünde bir yapıdır. Üyeleri, iletişim kutusu nesnesinin özelliklerini depolar. Nesneyi CFindReplaceDialog
oluşturdıktan sonra, iletişim kutusundaki çeşitli değerleri değiştirmek için kullanabilirsiniz m_fr
.
Bu yapı hakkında daha fazla bilgi için Windows SDK'daki yapıya bakın FINDREPLACE
.
Örnek
CFindReplaceDialog::CFindReplaceDialog örneğine bakın.
CFindReplaceDialog::MatchCase
Kullanıcının bulma dizesinin büyük/küçük harfle tam olarak eşleşmesini isteyip istemediğini belirlemek için bu işlevi çağırın.
BOOL MatchCase() const;
Dönüş Değeri
Kullanıcı arama dizesinin arama dizesinin büyük/küçük harfle tam olarak eşleşen oluşumlarını bulmak istiyorsa sıfır olmayan; aksi takdirde 0.
CFindReplaceDialog::MatchWholeWord
Kullanıcının yalnızca sözcüklerin tamamını eşleştirmek isteyip istemediğini belirlemek için bu işlevi çağırın.
BOOL MatchWholeWord() const;
Dönüş Değeri
Kullanıcı arama dizesinin yalnızca tüm sözcükleriyle eşleştirmek istiyorsa sıfır olmayan; aksi takdirde 0.
CFindReplaceDialog::ReplaceAll
Kullanıcının dizenin tüm oluşumlarının değiştirilmesini isteyip istemediğini belirlemek için bu işlevi çağırın.
BOOL ReplaceAll() const;
Dönüş Değeri
Kullanıcı değiştirme dizesiyle eşleşen tüm dizelerin değiştirilmesini istediyse sıfır olmayan; aksi takdirde 0.
CFindReplaceDialog::ReplaceCurrent
Kullanıcının geçerli sözcüğün değiştirilmesini isteyip istemediğini belirlemek için bu işlevi çağırın.
BOOL ReplaceCurrent() const;
Dönüş Değeri
Kullanıcı seçili durumdaki dizenin değiştirme dizesiyle değiştirilmesini istediyse sıfır olmayan; aksi takdirde 0.
CFindReplaceDialog::SearchDown
Kullanıcının aramanın aşağı doğru ilerlemesini isteyip istemediğini belirlemek için bu işlevi çağırın.
BOOL SearchDown() const;
Dönüş Değeri
Kullanıcı aramanın aşağı doğru ilerlemesini istiyorsa sıfır olmayan; Kullanıcı aramanın yukarı yönde ilerlemesini istiyorsa 0.