CFindReplaceDialog osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Lehetővé teszi a sztring keresésére/cseréjére szolgáló szabványos párbeszédpanelek implementálását az alkalmazásban.

Szemantika

class CFindReplaceDialog : public CCommonDialog

Tagok

Nyilvános konstruktorok

Név Leírás
CFindReplaceDialog::CFindReplaceDialog Ezt a függvényt meghívva hozzon létre egy objektumot CFindReplaceDialog .

Nyilvános metódusok

Név Leírás
CFindReplaceDialog::Létrehozás Párbeszédpanelt CFindReplaceDialog hoz létre és jelenít meg.
CFindReplaceDialog::FindNext Hívja meg ezt a függvényt annak meghatározásához, hogy a felhasználó meg szeretné-e keresni a keresési sztring következő előfordulását.
CFindReplaceDialog::GetFindString Hívja meg ezt a függvényt az aktuális keresési sztring lekéréséhez.
CFindReplaceDialog::GetNotifier Hívja meg ezt a függvényt a FINDREPLACE regisztrált üzenetkezelő szerkezetének lekéréséhez.
CFindReplaceDialog::GetReplaceString Hívja meg ezt a függvényt az aktuális cseresztring lekéréséhez.
CFindReplaceDialog::IsTerminating Hívja meg ezt a függvényt annak megállapításához, hogy a párbeszédpanel megszűnik-e.
CFindReplaceDialog::MatchCase Hívja meg ezt a függvényt annak megállapításához, hogy a felhasználó pontosan meg szeretné-e egyezni a keresési sztring esetével.
CFindReplaceDialog::MatchWholeWord Hívja meg ezt a függvényt annak meghatározásához, hogy a felhasználó csak a teljes szavakat szeretné-e egyezni.
CFindReplaceDialog::ReplaceAll Hívja meg ezt a függvényt annak meghatározásához, hogy a felhasználó szeretné-e lecserélni a sztring összes előfordulását.
CFindReplaceDialog::ReplaceCurrent Hívja meg ezt a függvényt annak megállapításához, hogy a felhasználó szeretné-e lecserélni az aktuális szót.
CFindReplaceDialog::SearchDown Hívja meg ezt a függvényt annak meghatározásához, hogy a felhasználó lefelé szeretné-e folytatni a keresést.

Nyilvános adatok tagjai

Név Leírás
CFindReplaceDialog::m_fr Objektum testreszabására CFindReplaceDialog használt struktúra.

Megjegyzések

A Windows többi gyakori párbeszédpanelétől CFindReplaceDialog eltérően az objektumok mód nélküliek, így a felhasználók a képernyő alatt más ablakokkal is kommunikálhatnak. Kétféle CFindReplaceDialog objektum létezik: A Keresés párbeszédpanelek és a Keresés/Csere párbeszédpanel. Bár a párbeszédpanelek lehetővé teszik a felhasználó számára a keresési és keresési/csere sztringek bevitelét, a keresési vagy cserefüggvények egyikét sem hajtják végre. Ezeket hozzá kell adnia az alkalmazáshoz.

Objektum létrehozásához CFindReplaceDialog használja a megadott konstruktort (amelynek nincsenek argumentumai). Mivel ez egy mód nélküli párbeszédpanel, foglalja le az objektumot a halomon az new operátorral, nem pedig a veremen.

Miután létrehozott egy CFindReplaceDialog objektumot, meg kell hívnia a Tag létrehozása függvényt a párbeszédpanel létrehozásához és megjelenítéséhez.

A m_fr struktúrával inicializálhatja a párbeszédpanelt hívás előtt Create. A m_fr struktúra TÍPUSA FINDREPLACE. A struktúrával kapcsolatos további információkért lásd a Windows SDK-t.

Ahhoz, hogy a szülőablak értesüljön a megkeresési/cserekérésekről, a Windows RegisterWindowMessage függvényt kell használnia, és a keretablakban a regisztrált üzenetet kezelő ON_REGISTERED_MESSAGE üzenettérkép makrót kell használnia.

Meghatározhatja, hogy a felhasználó úgy döntött-e, hogy megszakítja a párbeszédpanelt a IsTerminating tagfüggvénnyel.

CFindReplaceDialog a Windows 3.1 és újabb verzióit tartalmazó COMMDLG.DLL fájlra támaszkodik.

A párbeszédpanel testreszabásához származtatjon egy osztályt CFindReplaceDialog, adjon meg egy egyéni párbeszédpanelsablont, és adjon hozzá egy üzenettérképet az értesítési üzenetek feldolgozásához a kiterjesztett vezérlőkből. A feldolgozatlan üzeneteket át kell adni az alaposztálynak.

A horogfüggvény testreszabása nem szükséges.

A használatról CFindReplaceDialogtovábbi információt a Gyakori párbeszédpanel-osztályok című témakörben talál.

Öröklési hierarchia

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFindReplaceDialog

Követelmények

Fejléc: afxdlgs.h

CFindReplaceDialog::CFindReplaceDialog

Egy CFindReplaceDialog objektumot hoz létre.

CFindReplaceDialog();

Megjegyzések

Mivel az CFindReplaceDialog objektum egy mód nélküli párbeszédpanel, az operátorral kell létrehoznia a new halomra.

A megsemmisítés során a keretrendszer megpróbál végrehajtani egy delete this; műveletet a párbeszédpanelre mutató mutatón. Ha a veremen hozta létre a párbeszédpanelt, a this mutató nem létezik, és a nem definiált viselkedés eredménye lehet.

Az objektumok felépítéséről CFindReplaceDialog további információt a CFindReplaceDialog áttekintésében talál. A párbeszédpanel megjelenítéséhez használja a CFindReplaceDialog::Tag létrehozása függvényt.

példa

// 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::Létrehozás

Létrehoz és megjelenít egy Keresés vagy Keresés/Csere párbeszédpanel-objektumot az értéktől bFindDialogOnlyfüggően.

virtual BOOL Create(
    BOOL bFindDialogOnly,
    LPCTSTR lpszFindWhat,
    LPCTSTR lpszReplaceWith = NULL,
    DWORD dwFlags = FR_DOWN,
    CWnd* pParentWnd = NULL);

Paraméterek

bFindDialogOnly
Állítsa ezt a paramétert IGAZ értékre a Keresés párbeszédpanel megjelenítéséhez. Állítsa HAMIS értékre a Keresés/Csere párbeszédpanel megjelenítéséhez.

lpszFindWhat
A párbeszédpanel megjelenésekor mutasson az alapértelmezett keresési sztringre. Null érték esetén a párbeszédpanel nem tartalmaz alapértelmezett keresési sztringet.

lpszReplaceWith
A párbeszédpanel megjelenésekor mutasson az alapértelmezett helyettesítő sztringre. Null érték esetén a párbeszédpanel nem tartalmaz alapértelmezett helyettesítő sztringet.

dwFlags
A párbeszédpanel beállításainak testreszabásához használható egy vagy több jelző, a bitenkénti VAGY operátorral kombinálva. Az alapértelmezett érték a FR_DOWN, amely azt határozza meg, hogy a keresés lefelé haladjon. A jelzőkkel kapcsolatos további információkért tekintse meg a Windows SDK FINDREPLACE szerkezetét.

pParentWnd
Mutató a párbeszédpanel szülő- vagy tulajdonosablakára. Ez az az ablak, amely a keresés/csere művelet kérését jelző speciális üzenetet fogja kapni. Null érték esetén a rendszer az alkalmazás főablakát használja.

Visszaadott érték

Nemzero, ha a párbeszédpanel-objektum sikeresen létrejött; egyéb esetben 0.

Megjegyzések

Ahhoz, hogy a szülőablak értesüljön a megkeresési/cserekérésekről, a Windows RegisterWindowMessage függvényt kell használnia, amelynek visszatérési értéke az alkalmazás példányán egyedi üzenetszám. A keretablaknak rendelkeznie kell egy üzenettérkép-bejegyzéssel, amely deklarálja a regisztrált üzenetet kezelő visszahívási függvényt (OnFindReplace a következő példában). Az alábbi kódtöredék egy példa arra, hogyan lehet ezt elvégezni egy keretablak-osztály esetében: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)

A függvényen OnFindReplace belül a CFindReplaceDialog::FindNext és a CFindReplaceDialog::IsTerminating metódusokkal értelmezi a felhasználó szándékait, és létrehozza a kódot a keresési/csereműveletek számára.

példa

Lásd a CFindReplaceDialog::CFindReplaceDialog példát.

CFindReplaceDialog::FindNext

Hívja meg ezt a függvényt a visszahívási függvényből annak megállapításához, hogy a felhasználó meg szeretné-e keresni a keresési sztring következő előfordulását.

BOOL FindNext() const;

Visszaadott érték

Nem kötelező, ha a felhasználó meg szeretné keresni a keresési sztring következő előfordulását; egyéb esetben 0.

CFindReplaceDialog::GetFindString

Hívja meg ezt a függvényt a visszahívási függvényből, hogy lekérje az alapértelmezett keresett sztringet.

CString GetFindString() const;

Visszaadott érték

Az alapértelmezett keresendő sztring.

példa

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

Hívja meg ezt a függvényt, hogy az aktuális Csere keresése párbeszédpanelre mutató mutatót kérjen le.

static CFindReplaceDialog* PASCAL GetNotifier(LPARAM lParam);

Paraméterek

lParam
A keretablak tagfüggvényének OnFindReplace.

Visszaadott érték

Mutató az aktuális párbeszédpanelre.

Megjegyzések

A visszahívási függvényben kell használni az aktuális párbeszédpanel eléréséhez, a tagfüggvények meghívásához és a m_fr struktúra eléréséhez.

példa

Lásd: CFindReplaceDialog::Hozzon létre egy példát arra, hogyan regisztrálhatja az OnFindReplace kezelőt, hogy értesítéseket kapjon a Csere keresése párbeszédpanelről.

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

Hívja meg ezt a függvényt az aktuális cseresztring lekéréséhez.

CString GetReplaceString() const;

Visszaadott érték

Az alapértelmezett sztring, amellyel a talált sztringeket lecserélheti.

példa

Lásd a CFindReplaceDialog::GetFindString példát.

CFindReplaceDialog::IsTerminating

Hívja meg ezt a függvényt a visszahívási függvényben annak megállapításához, hogy a felhasználó úgy döntött-e, hogy megszakítja a párbeszédpanelt.

BOOL IsTerminating() const;

Visszaadott érték

Nonzero, ha a felhasználó úgy döntött, hogy leállítja a párbeszédpanelt; egyéb esetben 0.

példa

Lásd a CFindReplaceDialog::GetFindString példát.

CFindReplaceDialog::m_fr

Objektum testreszabására CFindReplaceDialog szolgál.

FINDREPLACE m_fr;

Megjegyzések

m_fr A FINDREPLACE típusú struktúra. Tagjai tárolják a párbeszédpanel-objektum jellemzőit. Az objektum CFindReplaceDialog létrehozása m_fr után a párbeszédpanelen módosíthatja a különböző értékeket.

Erről a struktúráról további információt a FINDREPLACE Windows SDK struktúrájában talál.

példa

Lásd a CFindReplaceDialog::CFindReplaceDialog példát.

CFindReplaceDialog::MatchCase

Hívja meg ezt a függvényt annak megállapításához, hogy a felhasználó pontosan meg szeretné-e egyezni a keresési sztring esetével.

BOOL MatchCase() const;

Visszaadott érték

Nem kötelező, ha a felhasználó a keresési sztring olyan előfordulásait szeretné megkeresni, amelyek pontosan megegyeznek a keresési sztring esetével; egyéb esetben 0.

CFindReplaceDialog::MatchWholeWord

Hívja meg ezt a függvényt annak meghatározásához, hogy a felhasználó csak a teljes szavakat szeretné-e egyezni.

BOOL MatchWholeWord() const;

Visszaadott érték

Nem kötelező, ha a felhasználó csak a keresési sztring teljes szavait szeretné egyezni; egyéb esetben 0.

CFindReplaceDialog::ReplaceAll

Hívja meg ezt a függvényt annak meghatározásához, hogy a felhasználó szeretné-e lecserélni a sztring összes előfordulását.

BOOL ReplaceAll() const;

Visszaadott érték

Nonzero, ha a felhasználó a cseresztringnek megfelelő összes sztring cseréjét kérte; egyéb esetben 0.

CFindReplaceDialog::ReplaceCurrent

Hívja meg ezt a függvényt annak megállapításához, hogy a felhasználó szeretné-e lecserélni az aktuális szót.

BOOL ReplaceCurrent() const;

Visszaadott érték

Nem kötelező, ha a felhasználó azt kérte, hogy az aktuálisan kijelölt sztringet cserélje le a helyettesítő sztringre; egyéb esetben 0.

CFindReplaceDialog::SearchDown

Hívja meg ezt a függvényt annak meghatározásához, hogy a felhasználó lefelé szeretné-e folytatni a keresést.

BOOL SearchDown() const;

Visszaadott érték

Nonzero, ha a felhasználó azt szeretné, hogy a keresés lefelé haladjon; 0, ha a felhasználó azt szeretné, hogy a keresés felfelé haladjon.

Lásd még

CCommonDialog osztály
hierarchiadiagram