複製鏈接
請複製以下鏈接發送給好友

CFindReplaceDialog

鎖定
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對象的結構
CFindReplaceDialog構造一個CFindReplaceDialog對象Create創建並顯示一個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