FINDREPLACE结构包含FindText和ReplaceText功能用于初始化“查找和替换”常用对话框的信息。FINDMSGSTRING注册的邮件使用此结构将用户的搜索或替换输入传递到“查找或替换公共对话框”的所有者窗口。
typedef struct { // fr
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
DWORD Flags;
LPTSTR lpstrFindWhat;
LPTSTR lpstrReplaceWith;
WORD wFindWhatLen;
WORD wReplaceWithLen;
LPARAM lCustData;
LPFRHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} FINDREPLACE;
会员
lStructSize
指定结构的长度(以字节为单位)。
hwndOwner
标识拥有该对话框的窗口。指定窗口的窗口过程从对话框接收到FINDMSGSTRING消息。该成员可以是任何有效的窗口句柄,但不能为NULL。
的hInstance
如果在旗成员中设置了FR_ENABLETEMPLATEHANDLE标志,则的hInstance是包含对话框模板的内存对象的句柄。如果FR_ENABLETEMPLATE标志被设置,的hInstance标识包含由lpTemplateName成员命名的对话框模板的模块。如果没有设置任何标志,则该成员将被忽略。
旗
一组位标志,可用于初始化对话框。当它发送FINDMSGSTRING注册消息以指示用户的输入时,该对话框设置这些标志。该成员可以是以下标志的组合:
旗 | 含义 | ||||
FR_DIALOGTERM | |||||
如果在FINDMSGSTRING消息中设置,表示该对话框正在关闭。当您收到设置了此标志的消息时,FindText或ReplaceText函数返回的对话框窗口句柄将不再有效。 | |||||
FR_DOWN | |||||
如果设置,则选择“查找”对话框中方向单选按钮的向下按钮,指示您应从当前位置搜索到文档的末尾。如果未设置,则选择向上按钮,以便您搜索到文档的开头。您可以设置此标志来初始化对话框。如果设置在FINDMSGSTRING消息中,则表示用户的选择。 | |||||
FR_ENABLEHOOK | |||||
启用lpfnHook成员中指定的挂钩功能。该标志仅用于初始化对话框。 | |||||
FR_ENABLETEMPLATE | |||||
表示的hInstance和lpTemplateName成员指定要用于替换默认模板的对话框模板。该标志仅用于初始化对话框。 | |||||
FR_ENABLETEMPLATEHANDLE | |||||
表示的hInstance成员标识包含预加载对话框模板的数据块。如果指定了该标志,系统将忽略lpTemplateName成员。 | |||||
FR_FINDNEXT | |||||
如果在FINDMSGSTRING消息中设置,则表示用户在“查找或替换”对话框中单击“查找下一个”按钮。lpstrFindWhat成员指定要搜索的字符串。 | |||||
FR_HIDEUPDOWN | |||||
如果在初始化“查找”对话框时设置,则隐藏搜索方向单选按钮。 | |||||
FR_HIDEMATCHCASE | |||||
如果在初始化“查找或替换”对话框时设置,则隐藏“匹配大小写”复选框。 | |||||
FR_HIDEWHOLEWORD | |||||
如果在初始化“查找或替换”对话框时设置,请隐藏“仅匹配全字”复选框。 | |||||
FR_MATCHCASE | |||||
如果设置,则选中“匹配大小写”复选框,指示搜索应区分大小写。如果未设置,则复选框未选中,因此搜索不区分大小写。您可以设置此标志来初始化对话框。如果设置在FINDMSGSTRING消息中,则表示用户的选择。 | |||||
FR_NOMATCHCASE | |||||
如果在初始化“查找或替换”对话框时设置,请禁用“匹配大小写”复选框。 | |||||
FR_NOUPDOWN | |||||
如果在初始化“查找”对话框时设置,请禁用搜索方向单选按钮。 | |||||
FR_NOWHOLEWORD | |||||
如果在初始化“查找或替换”对话框时设置,请禁用“整个Word”复选框。 | |||||
FR_REPLACE | |||||
如果在FINDMSGSTRING消息中设置,则表示用户在“替换”对话框中单击“替换”按钮。lpstrFindWhat成员指定要替换的字符串,并且lpstrReplaceWith成员指定替换字符串。 | |||||
FR_REPLACEALL | |||||
如果在FINDMSGSTRING消息中设置,则表示用户在“替换”对话框中单击“全部替换”按钮。lpstrFindWhat成员指定要替换的字符串,并且lpstrReplaceWith成员指定替换字符串。 | |||||
FR_SHOWHELP | |||||
导致对话框显示帮助按钮。hwndOwner成员必须指定窗口以接收当用户单击“帮助”按钮时该对话框发送的HELPMSGSTRING注册消息。 | |||||
FR_WHOLEWORD | |||||
如果设置,则选中“仅匹配全字”复选框,指示您应仅搜索与搜索字符串匹配的整个字词。如果未设置,则复选框未选中,因此您还应搜索与搜索字符串匹配的字段。您可以设置此标志来初始化对话框。如果设置在FINDMSGSTRING消息中,则表示用户的选择。 |
lpstrFindWhat
指向FINDMSGSTRING消息用于传递用户在“查找内容:”编辑控件中键入的空终止搜索字符串的缓冲区。您必须动态分配缓冲区或使用全局或静态数组,使其在对话框关闭之前不超出范围。缓冲区长度应至少为80个字符。如果在初始化对话框时缓冲区中包含一个字符串,则该字符串将显示在“Find What:”编辑控件中。
如果FINDMSGSTRING消息指定FR_FINDNEXT标志,则lpstrFindWhat包含要搜索的字符串。FR_DOWN,FR_WHOLEWORD和FR_MATCHCASE标志指示搜索的方向和类型。如果FINDMSGSTRING消息指定FR_REPLACE或FR_REPLACE标志,则lpstrFindWhat包含要替换的字符串。
lpstrReplaceWith
指向FINDMSGSTRING消息用于传递用户在“替换为:”编辑控件中键入的空终止的替换字符串的缓冲区。您必须动态分配缓冲区或使用全局或静态数组,使其在对话框关闭之前不超出范围。如果缓冲区包含一个字符串,当您初始化对话框时,字符串显示在“替换为:”编辑控件。
如果FINDMSGSTRING消息指定FR_REPLACE或FR_REPLACEALL标志,则lpstrReplaceWith包含替换字符串。
FindText函数忽略此成员。
wFindWhatLen
指定lpstrFindWhat成员指向的缓冲区的长度(以字节为单位)。
wReplaceWithLen
指定lpstrReplaceWith成员指向的缓冲区的长度(以字节为单位)。
lCustData
指定系统传递给由lpfnHook成员标识的挂接过程的应用程序定义数据。当系统向挂钩过程发送WM_INITDIALOG消息时,消息的【lParam的】参数是指向创建对话框时指定的FINDREPLACE结构的指针。挂钩过程可以使用此指针获取lCustData值。
lpfnHook
指向FRHookProc挂钩过程的指针,可以处理用于该对话框的消息。除非在旗成员中设置FR_ENABLEHOOK标志,否则此成员将被忽略。
如果挂钩过程返回FALSE以响应WM_INITDIALOG消息,挂钩过程必须显示对话框,否则对话框将不会显示。为此,首先执行任何其他绘画操作,然后调用ShowWindow和UpdateWindow函数。
lpTemplateName
指向由的hInstance成员标识的模块中的对话框模板资源的以null结尾的字符串。此模板代替标准对话框模板。对于编号的对话框资源,这可以是由MAKEINTRESOURCE宏返回的值。除非在旗成员中设置FR_ENABLETEMPLATE标志,否则该成员将被忽略。
也可以看看
FindText, FRHookProc, MAKEINTRESOURCE, ReplaceText, ShowWindow, UpdateWindow, WM_INITDIALOG