CFindReplaceDialog類在套用中實現標準字元串查找/替換對話框。不像其它普通的Windows對話框,CFindReplaceDialog對象是非模態的,允許用戶與螢幕上的視窗進行互動。有兩種CFindReplaceDialog對象:查找對話框和查找/替換對話框。
基本介紹
- 中文名:CFindReplaceDialog
- 性質:字元串查找/替換對話框
- 對象是:非模態的
- 相關:無須定製鉤子函式
儘管對話框允許用戶輸入查找/替換對話框,它們並不進行查找或替換,必須在套用中添加。
要構造一個CFindReplaceDialog,可調用提供的構造函式(無參的),因為它是非模態的,用new操作符把它放於堆頂而不放於棧中。
當一個CFindReplaceDialog被構造後,必須調用Create成員函式構造並顯示一個對話框。
調用Create之前,用m_fr結構初始化對話框。m_fr的類型為FINDREPLACE。要了解有關此結構的更多信息,可參閱在線上文檔“Win32 SDK”。
為使父視窗被通知查找/替換請求,必須在框架視窗使用WindowsRegister-WindowMessage 函式並使用ON_REGISTERED_MESSAGE訊息映射宏處理登記訊息。你可以從框架視窗的回調函式中調用CFindReplaceDialog類成員表中列出的任何成員函式。
可以使用IsTerminating判斷用戶是否是決定終止對話框。
CFindReplaceDialog依賴Windows3.1以上版本的檔案COMMDLG.DLL。
要定製對話框,可從CFindReplaceDialog派生出一個類,提供一個定製對話框模板,加入一個訊息映射,從擴展控制項中獲取通知訊息。其它未處理的訊息應被傳遞給基類。
無須定製鉤子函式。
#include <afxdlgs.h>
CFindReplaceDialog類的成員
m_fr定製CFindReplaceDialog對象的結構 |
操作
FindNext調用此成員函式決定用戶是否想繼續查找下一字元串GetNotifier調用此成員函式在登記訊息句柄中獲得FINDREPLACE結構GetFindString調用此成員函式獲得當前找到的字元串GetReplaceString調用此成員函式獲得當前替換字元串IsTerminating調用此成員函式決定對話框是否終止MatchCase調用此成員函式決定用戶是否想查找完全匹配的字元串MatchWholeWord調用此成員函式決定用戶是否只想查找與整個字相匹配的串ReplaceAll調用此成員函式決定用戶是否替換所有串ReplaceCurrent調用此成員函式決定用戶是否替換當前串SearchDown調用此成員函式決定是否向下查找 |
CFindReplaceDialog類:封裝了標準查找/替換對話框
CFindReplaceDialog::Create 創建一個Find或Find/Replace對話框對象
BOOL Create(BOOL bFindDialogOnly,LPCTSTR lpszFindWhat,LPCTSTR lpszReplaceWhat=NULL,DWORD dwFlag=FR_DOWN,CWnd* pParentWnd=NULL);
參數:bFindDialogOnly 為TRUE時,顯示查找對話框,為FALSE時,顯示查找/替換對話框;
lpszFindWhat 指定要查找的串的預設值;
lpszReplaceWhat 指定替換串的預設值;
dwFlag為標誌位,用來定製對話框,它可以是一個或多個標誌的組合,主要取值如下:
FR_DOWN 如果設定,對話框中的“向下查找”單選按鈕被選中,如果沒有設定,“向上查找”單選按鈕被選中;
FR_HIDEUPDOWN 不顯示查找方向單選按鈕;
FR_HIDEMATCHCASE 不顯示區分大小寫複選按鈕;
FR_HIDEWHOLEWORD 不顯示全字匹配複選按鈕;
FR_MATCHCASE 使區分大小寫複選按鈕處於選中狀態;
FR_WHOLEWORD 使全字匹配複選按鈕處於選中狀態;
FR_NOMATCHCASE 使區分大小寫複選按鈕處於禁止(變灰)狀態;
FR_NOUPDOWN 使查找方向單選按鈕處於禁止(變灰)狀態;
FR_NOWHOLEWORD 使全字匹配複選按鈕處於禁止(變灰)狀態;
FR_SHOWHELP 在對話框中顯示一個幫助按鈕。
pParentWnd 指向父視窗或屬主視窗的指針。
返回值:若創建成功,返回非0值,否則返回0。
CFindReplaceDialog::FindNext 確定用戶是否要查找串的下一個出現處
BOOL FindNext()const;
返回值:若用戶單擊查找“下一個”按鈕,則返回非0值,否則返回0。
CFindReplaceDialog::GetFindString 檢取對話框中的查找字元串
CString GetFindString()const;
返回值:對話框中的查找字元串
CFindReplaceDialog::GetNotifier 檢取當前查找/替換對話框的指針
static CFindReplaceDialog* PASCAL GetNotifier(LPARAM lParam);
參數:lParam 傳遞給回調函式OnFindReplace()的lParam值
返回值:指向當前查找/替換對話框的指針
CFindReplaceDialog::GetReplaceString 檢取對話框中的替換字元串
CString GetReplaceString()const;
返回值:對話框中的替換字元串
CFindReplaceDialog::IsTerminating 檢取對話框是否終止
BOOL IsTerminating()const;
返回值:若用戶終止對話框,返回非0值,否則返回0
CFindReplaceDialog::MatchCase 檢取區分大小寫複選按鈕狀態
BOOL MatchCase()const;
返回值:如果區分大小寫複選按鈕被選擇,返回非0值,否則返回0
CFindReplaceDialog::MatchWholeWord 檢取全字匹配複選按鈕狀態
BOOL MatchWholeWord()const;
返回值:如果全字匹配複選按鈕被選擇,返回非0值,否則返回0
CFindReplaceDialog::ReplaceAll 確定用戶是否要求全部替換
BOOL ReplaceAll()const;
返回值:如果用戶要求全部替換,返回非0值,否則返回0
CFindReplaceDialog::ReplaceCurrent 確定用戶是否要求替換當前選擇串
BOOL ReplaceCurrent()const;
返回值:如果用戶要求替換當前選擇串,返回非0值,否則返回0
CFindReplaceDialog::SearchDown 檢取查找方向
BOOL SearchDown()const;
返回值:如果為向下查找,返回非0值;若為向上查找,返回0