FINDREPLACEA 结构 (commdlg.h)

包含 FindTextReplaceText 函数用于初始化 查找替换 对话框的信息。 FINDMSGSTRING 注册的消息使用此结构将用户的搜索或替换输入传递给 查找替换 对话框的所有者窗口。

语法

typedef struct tagFINDREPLACEA {
  DWORD        lStructSize;
  HWND         hwndOwner;
  HINSTANCE    hInstance;
  DWORD        Flags;
  LPSTR        lpstrFindWhat;
  LPSTR        lpstrReplaceWith;
  WORD         wFindWhatLen;
  WORD         wReplaceWithLen;
  LPARAM       lCustData;
  LPFRHOOKPROC lpfnHook;
  LPCSTR       lpTemplateName;
} FINDREPLACEA, *LPFINDREPLACEA;

成员

lStructSize

类型:DWORD

结构的长度(以字节为单位)。

hwndOwner

类型:HWND

拥有对话框的窗口的句柄。 指定窗口的窗口过程从对话框中接收 FINDMSGSTRING 消息。 此成员可以是任何有效的窗口句柄,但不能 NULL

hInstance

类型:HINSTANCE

如果在 标志中设置了 FR_ENABLETEMPLATEHANDLE 标志,hInstance 是包含对话框模板的内存对象的句柄。 如果设置了 FR_ENABLETEMPLATE 标志,hInstance 是包含由 lpTemplateName 成员命名的对话框模板的模块的句柄。 如果未设置这两个标志,则忽略此成员。

Flags

类型:DWORD

可用于初始化对话框的一组位标志。 对话框在发送 FINDMSGSTRING 注册消息以指示用户的输入时设置这些标志。 此成员可以是以下一个或多个值。

价值 意义
FR_DIALOGTERM
0x00000040
如果在 FINDMSGSTRING 消息中设置,则表示对话框正在关闭。 收到设置了此标志的消息时,FindTextReplaceText 函数返回的对话框句柄不再有效。
FR_DOWN
0x00000001
如果已设置,则选中 “查找”对话框中方向单选按钮的 向下 按钮,指示应从当前位置搜索到文档末尾。 如果未设置,则会选择“向上”按钮,以便搜索文档的开头。 可以设置此标志来初始化对话框。 如果在 FINDMSGSTRING 消息中设置,则指示用户的选择。
FR_ENABLEHOOK
0x00000100
启用在 lpfnHook 成员中指定的挂钩函数。 此标志仅用于初始化对话框。
FR_ENABLETEMPLATE
0x00000200
指示 hInstancelpTemplateName 成员指定用于代替默认模板的对话框模板。 此标志仅用于初始化对话框。
FR_ENABLETEMPLATEHANDLE
0x00002000
指示 hInstance 成员标识包含预加载对话框模板的数据块。 如果指定了此标志,系统将忽略 lpTemplateName 成员。
FR_FINDNEXT
0x00000008
如果在 FINDMSGSTRING 消息中设置,则表示用户在 “查找”或 “替换”对话框中单击了 “查找下一个”按钮。 lpstrFindWhat 成员指定要搜索的字符串。
FR_HIDEUPDOWN
0x00004000
如果在初始化 “查找”对话框时设置,则隐藏搜索方向单选按钮。
FR_HIDEMATCHCASE
0x00008000
如果在初始化 查找替换 对话框时设置,则隐藏 匹配事例 复选框。
FR_HIDEWHOLEWORD
0x00010000
如果在初始化 查找替换 对话框时设置,则隐藏“仅匹配整字 ”复选框。
FR_MATCHCASE
0x00000004
如果已设置,则选中“匹配大小写”复选框,指示搜索应区分大小写。 如果未设置,则取消选中该复选框,因此搜索应不区分大小写。 可以设置此标志来初始化对话框。 如果在 FINDMSGSTRING 消息中设置,则指示用户的选择。
FR_NOMATCHCASE
0x00000800
如果在初始化 查找替换 对话框时设置,请禁用 匹配事例 复选框。
FR_NOUPDOWN
0x00000400
如果在初始化 “查找”对话框时设置,则禁用搜索方向单选按钮。
FR_NOWHOLEWORD
0x00001000
如果在初始化 查找替换 对话框时设置,请禁用“整个 Word”复选框
FR_REPLACE
0x00000010
如果在 FINDMSGSTRING 消息中设置,则表示用户在 “替换”对话框中单击了“替换”按钮 lpstrFindWhat 成员指定要替换的字符串,lpstrReplaceWith 成员指定要替换字符串。
FR_REPLACEALL
0x00000020
如果在 FINDMSGSTRING 消息中设置,则表示用户 单击 “替换”对话框中的“全部替换所有”按钮。 lpstrFindWhat 成员指定要替换的字符串,lpstrReplaceWith 成员指定要替换字符串。
FR_SHOWHELP
0x00000080
使对话框显示“帮助”按钮 hwndOwner 成员必须指定窗口才能接收当用户单击“帮助 ”按钮时对话框发送的 HELPMSGSTRING 注册的消息。
FR_WHOLEWORD
0x00000002
如果已设置,则选中 “仅匹配整字”复选框,指示应仅搜索与搜索字符串匹配的全字。 如果未设置,则取消选中该复选框,因此还应搜索与搜索字符串匹配的单词片段。 可以设置此标志来初始化对话框。 如果在 FINDMSGSTRING 消息中设置,则指示用户的选择。

lpstrFindWhat

类型:LPTSTR

用户在 查找内容 编辑控件中键入的搜索字符串。 必须动态分配缓冲区或使用全局或静态数组,以便在对话框关闭之前它不会超出范围。 缓冲区长度应至少为 80 个字符。 如果在初始化对话框时缓冲区包含字符串,则字符串将显示在 “查找内容” 编辑控件中。 如果 FINDMSGSTRING 消息指定 FR_FINDNEXT 标志,lpstrFindWhat 包含要搜索的字符串。 FR_DOWNFR_WHOLEWORDFR_MATCHCASE 标志指示搜索的方向和类型。 如果 FINDMSGSTRING 消息指定 FR_REPLACEFR_REPLACE 标志,lpstrFindWhat 包含要替换的字符串。

lpstrReplaceWith

类型:LPTSTR

用户在 “替换为” 编辑控件中键入的替换字符串。 必须动态分配缓冲区或使用全局或静态数组,以便在对话框关闭之前它不会超出范围。 如果在初始化对话框时缓冲区包含字符串,则字符串将显示在 替换为 编辑控件中。

如果 FINDMSGSTRING 消息指定 FR_REPLACEFR_REPLACEALL 标志,lpstrReplaceWith 包含替换字符串。

findText 函数 忽略此成员。

wFindWhatLen

类型:WORD

lpstrFindWhat 成员指向的缓冲区的长度(以字节为单位)。

wReplaceWithLen

类型:WORD

lpstrReplaceWith 成员指向的缓冲区的长度(以字节为单位)。

lCustData

类型:LPARAM

系统传递给由 lpfnHook 成员标识的挂钩过程的应用程序定义数据。 当系统将 WM_INITDIALOG 消息发送到挂钩过程时,消息的 lParam 参数是指向创建对话框时指定的 FINDREPLACE 结构的指针。 挂钩过程可以使用此指针获取 lCustData 值。

lpfnHook

类型:LPFRHOOKPROC

指向 FRHookProc 挂钩过程的指针,该挂钩过程可以处理用于对话框的消息。 除非在 标志 成员中设置 FR_ENABLEHOOK 标志,否则将忽略此成员。 如果挂钩过程返回 FALSE 以响应 WM_INITDIALOG 消息,则挂钩过程必须显示对话框,否则不会显示对话框。 为此,请先执行任何其他绘制操作,然后调用 ShowWindowUpdateWindow 函数。

lpTemplateName

类型:LPCTSTR

hInstance 成员标识的模块中的对话框模板资源的名称。 此模板替换为标准对话框模板。 对于编号对话框资源,此值可以是由 MAKEINTRESOURCE 宏 返回的值。 除非在 标志 成员中设置 FR_ENABLETEMPLATE 标志,否则将忽略此成员。

言论

注意

commdlg.h 标头将 FINDREPLACE 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
标头 commdlg.h (包括 Windows.h)

另请参阅

通用对话框库

概念

FRHookProc

FindText

MAKEINTRESOURCE

参考

ReplaceText

ShowWindow

WM_INITDIALOG