查找替换对话框——编辑文本
显示一个无模式对话框,该对话框允许用户指定要搜索的字符串,以及在搜索文档中的文本时要使用的选项。
“ 替换 ”对话框允许用户指定要搜索的字符串和替换字符串,以及用于控制操作的选项。 通过初始化 查找替换类 结构并将该结构传递给查找选框函数,可以创建并显示“查找”对话框。 下图显示了一个典型的“ 查找 ”对话框。

中文名字 | 英文名称 | 数值 | 作用解释 |
向下查找 | FR_DOWN | 1 | 如果设置,则选择方向单选按钮的 向下 按钮,指示用户想要从当前位置到文档末尾进行搜索。 如果未设置 向下 ,则选择“ 向上 ”按钮,以便用户想要搜索到文档的开头。 |
全字匹配 | FR_WHOLEWORD | 2 | 如果设置,则选中“匹配整个Word仅检查”框,指示用户只想搜索与搜索字符串匹配的整个单词。 如果未设置全字匹配,则未选中检查框,因此还应搜索与搜索字符串匹配的单词片段。 |
分大小写 | FR_MATCHCASE | 4 | 如果设置,则选中“匹配大小写检查框,指示用户希望搜索区分大小写。 如果未设置分大小写,则取消选中检查框,以便搜索不区分大小写。 |
查下一个 | FR_FINDNEXT | 8 | 用户单击了“查找”或“替换”对话框中的“查找下一个”按钮。 查找 成员指定要搜索的字符串。 |
选中替换 | FR_REPLACE | 0x10 | 用户单击了“ 替换 ”对话框中的“ 替换 ”按钮。 查找 成员指定要替换的字符串,替换 成员指定替换字符串。 |
全部替换 | FR_REPLACEALL | 0x20 | 用户单击了“ 替换 ”对话框中的“全部 替换 ”按钮。 查找 成员指定要替换的字符串,替换 成员指定替换字符串。 |
查找关闭 | FR_DIALOGTERM | 0x40 | 对话框正在关闭。所有者窗口处理此消息后,对话框的句柄不再有效。 |
代码示例:
整数 查换消息;//在窗体消息函数前面申请此整数变量 查找替换类 查换(长度=40,标志=1,查长=64,替长=64);//结构数据的长度=40,标志=1向下,查找和替换的文字长度=64 文本 查找[64],替换[64];//申请文本变量的内存缓冲区,用来存储查找和替换的文字 为 查换消息 查找替换(窗口);//在窗体消息的判断(消息)下方插入这段代码 程序段 窗体启动;//以上代码为全局变量,在窗体启动程序段进行赋值 查换消息=注册消息("commdlg_FindReplace");//获取已注册消息的消息标识符。 查换.窗口=窗体;//指定查找替换对话框的窗口为程序主窗体 查换.查找=查找;//指定查找替换对话框的查找为文本缓冲区 查换.替换=替换;//指定查找替换对话框的替换为文本缓冲区 结束//换到其它地方书写代码
程序段 按钮2_点击;//在按钮2的点击事件里弹出查找对话框 搜索选框(查换)//使用定义的查找替换类调用搜索选框弹出对话框 结束//换到其它地方书写代码 程序段 按钮3_点击;//在按钮3的点击事件里弹出替换为对话框 替换选框(查换)//使用定义的查找替换类调用替换选框弹出对话框 结束//换到其它地方书写代码 程序段 查找替换(窗口)//窗体消息收到查换消息时调用此函数 整数 功能=查换.标志 & $F8;//从标志里去掉1向下,2全字匹配,4区分大小写,这三项信息 查换.标志=查换.标志 & 7;//标志只保留1向下,2全字匹配,4区分大小写,这三项信息 判断(功能)为 8 搜索内容(0)//单击查找下一个按钮,执行继续搜索内容 为 16{替换内容;搜索内容(0)}//单击了替换按钮,替换当前选中文字,继续搜索内容 为 32{选中位置(0,0)搜索内容(1)}//单击了全部替换按钮,改光标位置为起始处,搜索内容提交参数1为循环搜索并替换 结束//搜索内容和替换内容都是程序段代码,需要使用发送消息函数实现
查找替换类
中文名字 | 英文名称 | 长度 | 作用解释 |
查找替换类 | FINDREPLACE | 40 | 弹出一个查找或替换文本的对话框 |
查找替换类——成员表 | |||
---|---|---|---|
中文 | 英文 | 类型 | 作用解释 |
长度 | lStructSize | 整数 | 指定这个结构的大小,以字节为单位。 |
窗口 | hwndOwner | 整数 | 拥有对话框的窗口的句柄。可不指定 |
实例 | hInstance | 整数 | Flags设置了FR_ENABLETEMPLATEHANDLE标志,则 hInstance 是包含对话框模板的内存对象的句柄。 设置了FR_ENABLETEMPLATE标志,是包含对话框模板的模块句柄。 |
标志 | Flags | 整数 | 1选向下;2全字匹配;4大小写;8查找下个;$10替换;$20全部替换;$40关闭;$80显示帮助;$100回调;$200实例模板;$400禁用方向; $800禁用大小写;$1000禁用全字匹配;$2000忽略模板;$4000隐藏方向;$8000隐藏大小写;$10000隐藏全字匹配; |
查找 | lpstrFindWhat | 整数 | 如果指定了FR_FINDNEXT标志,则要包含搜索的字符串。 FR_DOWN、FR_WHOLEWORD和FR_MATCHCASE标志指示搜索的方向和类型。 如果指定FR_REPLACE或FR_REPLACE标志,则要包含替换的字符串。 |
替换 | lpstrReplaceWith | 整数 | 如果指定FR_REPLACE或FR_REPLACEALL标志,则要包含替换字符串 。 |
查长 | wFindWhatLen | 整形 | 查找字符缓冲区长度 |
替长 | wReplaceWithLen | 整形 | 替换字符缓冲区长度 |
数据 | lCustData | 整数 | 自定义数据,传到的钩子程序 |
回调 | lpfnHook | 整数 | 指向钩子程序的指针,该钩子可以处理回调消息。 |
模板 | lpTemplateName | 整数 | 指向对话框模板资源名称的字符串 |