Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
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.