CFindReplaceDialog

CFindReplaceDialog

CObject
 └CCmdTarget
    └CWnd
       └CDialog
          └CCommonDialog
             └CFindReplaceDialog


CFindReplaceDialog类在应用中实现标准字符串查找/替换对话框。不像其它普通的Windows对话框, 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派生出一个类,提供一个定制对话框模板,加入一个消息映射,从扩展控件中获取通知消息。其它未处 理的消息应被传递给基类。
无须定制钩子函数。
要获取关于使用CFindReplaceDialog的更多信息,可参阅联机文档“Visual C++程序员指南”中的“常用对话框类”。
#include

CFindReplaceDialog类的成员

数据成员

m_fr 定制CFindReplaceDialog对象的结构


构造函数

CFindReplaceDialog 构造一个CFindReplaceDialog对象
Create 创建并显示一个CFindReplaceDialog对话框

 

操作

FindNext 调用此成员函数决定用户是否想继续查找下一字符串
GetNotifier 调用此成员函数在登记消息句柄中获得FINDREPLACE结构
GetFindString 调用此成员函数获得当前找到的字符串
GetReplaceString 调用此成员函数获得当前替换字符串
IsTerminating 调用此成员函数决定对话框是否终止
MatchCase 调用此成员函数决定用户是否想查找完全匹配的字符串
MatchWholeWord 调用此成员函数决定用户是否只想查找与整个字相匹配的串
ReplaceAll 调用此成员函数决定用户是否替换所有串
ReplaceCurrent 调用此成员函数决定用户是否替换当前串
SearchDown 调用此成员函数决定是否向下查找


CFindReplaceDialog::CFindReplaceDialog

CFindReplaceDialog( );

说明:
构造一个CFindReplaceDialog对象,CFindReplaceDialog对象用new操作符在堆 顶。
要了解有关构造CFindReplaceDialog对象的更多信息,请参阅CFindReplaceDialog的概述。可使用 Create显示对话框。

CFindReplaceDialog::Create

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

返回值:
如果对话框对象成功构造,则返回非零值,否则为0。

参数:

bFindDialogOnly 将参数设置为TRUE,显示标准查找对话框,FALSE显示查找/替换对话框。
lpszFindWhat 指定要查找的字符串。
lpszReplaceWith 指定替换找到的字符串的缺省字符串。
dwFlags 用一个或多个标志的组合及联合按位OR操作符来定制一个对话框的设置。缺省为FR_DOWN,指定查找方向是向下的。可参阅联机文档 “Win32 SDK”中的FINDREPLACE结构,了解有关此标志的更多信息。
pParentWnd 指向对话框的父窗口或拥有者窗口。此窗口是将接收对话框中查找/替换动作信息的窗口。如果为NULL,则应用的主窗口被使用。


说明:
创建并显示一个查找或查找/替换对话框(由bFindDialogOnly 指定)。为了使父窗口知道查找/替换请求,必须使用Windows RegisterWindowMessage函数,它的返回值是应用实例唯一的消息号。框架窗口必须有一个消息映射入口,以声明回调函数(如下例中的 OnFindReplace)来处理登记消息。
以下代码段是对一个CMyFrameWnd框架窗口类作此操作的示例:
class CmyFrameWnd : public CFrameWnd
{
  protected:
    afx_msg LONG OnFindReplace(WPARAM wParam, LPARAM 1Param);
    DECLARE_MESSAGE_MAP( )
};

static UINT WM_FINDREPLACE = ::RegisterWindowMessage(FINDMSGSTRING);
BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)
   // Normal message map entries here.
   ON_REGISTERED_MESSAGE(WM_FINDREPLACE,OnFindReplace)
END_MESSAGE_MAP
在 OnFindReplace函数中,解释了用户的意图并创建了查找/替换操作的代码。

CFindReplaceDialog::FindNext

BOOL FindNext( )const;

返回值:
如果用户想查找下一个出现的字符串,则返回非零值,否则为0。

说明:
从回调函数 中调用此成员函数,决定是否想查找下一个出现的字符串。

CFindReplaceDialog::GetFindString

CString GetFindString ( )const;

返回值:查找的缺省字符串。

说明:
从回调函数中调用此成员函数,获得查找到的缺省字符串。

CFindReplaceDialog::GetNotifier

static CFindReplaceDialog* PASCAL GetNotofier(LPARAM lParam);

返回值:指向当前对话框的指针。

参数:

lParam 传递到框架窗口的OnFindReplace成员函数的lparam值。


说明:
调用此成员函数,获取一个指向当前对话框的指针。它应在回调函数中使用,来获得一个当前对话框入口,调用它的成员函数并访问m_fr结构。

CFindReplaceDialog::GetReplaceString

CString GetReplaceString( ) const;

返回值:替换找到字符串的缺省字符串。

说明:调用此成员函数获取当前替换字符串。

CFindReplaceDialog::IsTerminating

BOOL IsTerminating( )const;

返回值:如果用户决定终止对话框,则为非零值,否则为0。

说明:
在回调函数中调用此成员函数,决定用户是否要终止对话框。如果返回非零值,则应调用当前对话框的DestroyWindow成员函数并设置任意对话框指针 变量为NULL。另外,也可以将最后输入的查找/替换文本存储起来,初始化查找/替换对话框。

CFindReplaceDialog::MatchCase

BOOL MatchCase( )const;

返回值:
如果用户希望查找的字符与指定字符大小写匹配,则返回非零值,否则为0。

说明:
调 用此成员函数决定用户是否是希望查找的字符大小写匹配。

CFindReplaceDialog::MatchWholeWord

BOOL MatchWholeWord( )const;

返回值:
如果用户希望查找字符整个字与之匹配,则返回非零值,否则为0。

说明:
调用此成 员函数决定用户是否是希望仅与整个字相匹配。

CFindReplaceDialog::ReplaceAll

BOOL ReplaceAll( )const;

返回值:
如果用户希望所有匹配字符串均被替换,则返回非零值,否则为0。

说明:
调用此成 员函数决定是否替换所有匹配字符串。

CFindReplaceDialog::ReplaceCurrent

BOOL ReplaceCurrent( )const;

返回值:
如果用户希望替换当前选中的字符串,则为非零值,否则为0。

说明:
调用此成员函 数决定用户是否替换当前字符串。

CFindReplaceDialog::SearchDown

BOOL SearchDown( )const;

返回值:
如果用户希望查找时的顺序是向下的,则为非零值。如果用户希望向上查找,则为0。

说明:
调用此成员函数决定用户是否希望向下查找。

CFindReplaceDialog::m_fr

说 明:
m_fr是一个FINDREPLACE类型的结构,它存储对话框对象的特性。构造一个CFindReplaceDialog对象后,可用 m_fr改变对话框中的变量值。
要了解有关此结构的更多信息,可参阅联机文档“Win32 SDK”中的FINDREPLACE结构。

你可能感兴趣的:(CFindReplaceDialog)