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 <afxdlgs.h>
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结构。