Aracılığıyla paylaş


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 CFindReplaceDialogbir 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 CFindReplaceDialoghakkında daha fazla bilgi için bkz . Ortak İletişim Kutusu Sınıfları.

Devralma Hiyerarşisi

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

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 bFindDialogOnlybağ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ı CMyRichEditViewbir ç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_frFINDREPLACE 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.

Ayrıca bkz.

CCommonDialog Sınıfı
Hiyerarşi Grafiği