说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何调用系統的【查找】、【替换】的对话框?

HTML文档下载 WORD文档下载 PDF文档下载
VB如何调用系統的【查找】、【替换】的对话框?
版本:VB6 / VB5 / VB4-32

在一般的文本编辑软件中,例如 Windows 本身提供的记事本及写字板中,我们都可以在【编辑】下拉菜单中,找到【查找】、【替换】二项功能,我想很多人自己在编写程序时,也都会自己为程序去编写这二个相当基本的功能。其实根本不用您自己花时间去编写这样的程序代码!

还记得 Microsoft Common Dialog Control (16 位控件是 Comdlg16.ocx,32 位控件是 Comdlg32.ocx) 吗?我们都知道,这个控件可以帮助我们做到以下几件事情:

1、ShowOpen:打开文件对话框
2、ShowSave:保存对话框
3、ShowPrinter:打印设置对话框
4、ShowFont:字体对话框
5、ShowColor:颜色对话框
6、ShowHelp:帮助对话框
当然,您若还想要 Microsoft Common Dialog Control 多做一些別的事也没办法的!但是,Microsoft 在提供 .ocx 控件的同时,还提供了另外一个控件文档,也就是 comdlg32.dll,它的功能就多了,除了上面提到的几种对话框之外,还有好几个不同功能的对话框,其中就包含【查找】、【替换】二项功能!这二个 API 分別是 FindText 及 ReplaceText 二个。

在程序中,要声明这二个 API 之前,由于它们都会引用到一个名为 FINDREPLACE 的 Type,所以我们在声明 Function 之前,必须先声明 Type FINDREPLACE,程序代码如下:

在表单的声明区中加入以下声明:

'Find/Replace Type Structure
Private Type FINDREPLACE
lStructSize As Long ' size of this struct 0x20
hwndOwner As Long ' handle to owner's window
hInstance As Long ' instance handle of.EXE that contains cust. dlg. template
flags As Long ' one or more of the FR_??
lpstrFindWhat As String ' ptr. to search string
lpstrReplaceWith As String ' ptr. to replace string
wFindWhatLen As Integer ' size of find buffer
wReplaceWithLen As Integer ' size of replace buffer
lCustData As Long ' data passed to hook fn.
lpfnHook As Long ' ptr. to hook fn. or NULL
lpTemplateName As String ' custom template name
End Type

'Common Dialog DLL Calls
Private Declare Function FindText Lib "comdlg32.dll" Alias "FindTextA" _
(pFindreplace As FINDREPLACE) As Long

Private Declare Function ReplaceText Lib "comdlg32.dll" Alias "ReplaceTextA" _
(pFindreplace As FINDREPLACE) As Long

'Delcaration of the type structure
Dim frText As FINDREPLACE
在表单中加入二个 Command Button,并命名为 cmdFind, cmdReplace,加入以下程序代码:

Private Sub cmdFind_Click()
'Call the find text function
FindText frText
End Sub

Private Sub cmdReplace_Click()
'Call the replace text function
ReplaceText frText
End Sub

Private Sub Form_Load()
'Set the Find/Replace Type properties
With frText
.lpstrReplaceWith = "Replace Text"
.lpstrFindWhat = "Find Text"
.wFindWhatLen = 9
.wReplaceWithLen = 12
.hInstance = App.hInstance
.hwndOwner = Me.hWnd
.lStructSize = LenB(frText)
End With
End Sub
好了,您现在可以按 F5 试试了!
注:在 Type FINDREPLACE 中有一个 flag,您可以代入的 flag 是 FR_??,您可以在 API 文件查看器中找找!
Windows/VB编程逐月通 VB编写键盘拦截程序 VB常见问题解答(1) VB程序中处理随机事件 VB的多媒体控件VBPLAY.VBX简介 VB技巧点滴 VB技巧汇编 (一) VB剪贴板的用法 VB开发CAI软件的小经验 VB软件设计中的几个问题 VB新手常见问题解答 VB修改注册表一特例 VB与VC混合编程中处理消息的方法 VB中的进制转换是怎样的? VB中调用带参数存储过程的实现(数据库) VB中感叹号“!”与圆点“.”的用法差异 VB中如何实现注册表的读写 VB中实现“擦视”技术 Visual Basic 2000年问题 Visual Basic 的未来 Visual Basic 命令分类表 Visual Basic三级跳 Visual Basic使用技巧 Visual Basic中的子类处理技术 Visual Basic中软件封面技术探秘 VisualBasic 软件设计中的几个问题 Windows 95/NT 运行了多长时间 -VB资料 Windows 的登录资料库 -VB资料 把回车键变成TAB键-VB资料 把文件置入到Text或RichText中 -VB资料 避免按 [ENTER] 回车键产生的“嘀”声 -VB资料 求助:关于treeview的右键点击选中的问题。。。 小弟才學 JavaMail 安書上的例子寫了下面的代碼 編譯通過但是 運行不了 幫忙看看!!!! 虚函数是什么意思。 delphi5的sql语句 请教。Windows CE Services 怎么用。我有一张盘,不知用法。 [老问题]如何对并口进行操作?300分。----------------- 请问Java TM Programming Language中的TM(在Java的右角上)是什么意思啊? 这样的程序界面应该如何做?紧急求助!!! HelloImpl err: Cannot connect to ORB 是怎么回事呢? Source Insight3.1使用问题?正确解答者150分 哪儿有《The art of computer programming》下载? C++編程思想 各位情场高人,帮小弟一把,怎么把这个MM约出来,出个主意,俺先谢谢大家了!!! 我需要JAVA-JDBC打开数据库的例子.................... 谁有Delphi编译错误信息对照表,有中文注解的最好---50分 请问在SQLSERVER2000中如何在检索数据是将两个字段合并成一个字段,用“||”吗? 数据库的重定向问题! 关于使用资源 QRRichText 打印如果页数很多(2页以上),就打印不完全,但打印预览中可以看到全部,为什么? 我有一个弱弱问题要问。。。 在C#中如何做ToolWindow属性的WinForms?????????? 怎样才能将静态文本框的背景色设置为透明的? 实时错误“480”,不能创建AUTOREDRAW图象,如何解决?把PICTUREBOX定义太大会产生这个错误,不能绘图! COOL!COOL! 序列的一系列问题 劳烦各位介绍一下业界最流行实用的汇编,C语言编译器,我是在校生急需指导! Rebar 移动的问题!烦死我了! 高手留步:请问VC中获取当天日期的函数是???还有比较两个日期所差天数用什么函数??? 请问怎样才能将vb中的date型的内容转化为sql server的datetime型呀,谢谢大家了 请问,怎样在 FLAH5 中直接插入 MP3,并改变 MP3 的音质? 利用delphi连接远程sybase数据库,在多用户操作情况下为什么会产生数据库死锁 看了一下SL275(2001年5月)的课程概述,发现里面没有了Applet了,SCJP是不是舍弃了它了? 有关JAVA的Package,ClassPath的讨论,诸位看过来 COOL!COOL!COOL! what's wrong with the SOCKET define? 使用vb通过NotesSQL for odbc连接过domino数据库时总出现如下错误“ [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLAllocHandle on SQL_HANDLE_ENV 失败”,有谁遇到过吗?如何解决? 在SDK中,如何判断对话框中的CheckBox是否选中? 请教如何修改如何提交数据(一对多的表) 如何在delphi里实现文件(比如文本文件)从一台机器传递到另一台机器?比较急! 不知道主板集成声卡的型号,又没有驱动程序?怎么办?主板是ASUS CUSL2,I815E CHIPSET 想问问大家pb自带的例子中有没有关于权限的例子 怎么样吧jpg图片转成ico?????? 听说程序员结婚生孩子多数会是女孩,是不是真的?,好像与辐射有关哦 那里有windoes版的ftp源码 不知道主板集成声卡的型号,又没有驱动程序?怎么办? 主板是ASUS CUSL2 ,I815E CHIPSET 请问哪里有编写多线程安全对象的资料?(72分) 通过界面输入大量数据,界面如何设计??? 在Red hat 7.1如何安装GBK字符集! Focus(老鱼)回答得50分 请教网站的建设计划如何写呀? 请问下面的DELPHI程序如何转为CB (X/10)(X/10)=(6-X*X)/36 学信网可以查英语四级网考成绩吗看好了是四级网考成绩哟 已知x+y=3,xy=1,a+b=5,ab=3,且m=ax+by,n=bx+ay 求m^3+n^3的值 小白加小白等于什么? 设A=根号5-根号6,B=根号6-根号7,A,B的大小关系 已知x+y=5,xy=2.a+b=3,ab=3,m=ax+by,n=ay+bx,求n/m+m/n的值 小白加小白等于啥? 小白加小白等于什么呢? 2进制如何转化为10进制,请用一个简单明了的办法说明下,本人很愚笨,一般的理解不了, 三次根号9与根号3的大小 求含字母的绝对值化简 2道 快 2进制转10进制 11012进制1101 转10进制 2009年6月四级成绩什么时候出来?如题.、 在有理数中,最小的正整数是什么?,最大的负整数?,绝对值最小的数是? 化简有绝对值的带字母的式子的规律 09年6月英语四级成绩什么时候查得到在哪查、PS :我是江西的 十进制数转换成八进制数正数我会转换,主要是十进制的负数 转换成八进制数.例如十进制数-111转成8进制数.本人菜鸟,请写出计算过程.请问,八进制数、十六进制数,在计算机里占两个字节的空 初一的化简绝对值题目(带字母的) 快点啊,多谢啦! 什么时候可以知道2009年6月英语四级的成绩 如何将十进制数转换成八进制数? 已知b=根号(a-3)+根号(3-a)+根号8 试比较a、b的大小 灵异事件解答有时睡觉的时候突然醒了 意识清醒的状态下 我自己总是觉得身体里有东西老是想往外飘 但每次快飘出身体的时候总被拉回来 有时反反复复次 我想请问下这是怎么回事? 1、十进制数59转换成八进制数是 (4)有一个数是123,它与十六进制数53相等,那么该数值是A)八进制数; B)十进制数; C)五进制 ; D)二进制数A 绝对是灵异事件,我带手机上学,每天晚上回到家,装手机的袋子那链子总是拉开,我是坐车回来的,下车的时候还是拉着的,连续几天了,难道真的有鬼 八进制转十进制怎么转啊?八进制数1507 一个数是123,它与十六进制数53相等那么该数是几进制的?怎么个算法? 这件事过去了快一年了!本该早已忘记,不过我经常想起,也无法理解所以想请高手帮我解答下!事情是这样的,那天晚上陪朋友在网吧里等人大概等到12点她朋友才来!然后我自己一个人回家~网吧 英语四级成绩证明什么样子 有一个数是123,它与十六进制53相等的数值是多少?我很着急,计算过程也要, 3倍的根号0.2+4倍的根号125+根号27分之1—根号75 比较大小 π和22/7 根号3和5/3 (ax+by)^2-(ay+bx)^2 谁能帮我解答灵异事件?昨天晚上做梦梦到左手的玉镯子碎了,今天老公下班回家告诉我他今天抽完烟仍烟头市烟头居然立住了,他觉得很有意思还拍了照片留纪念呢,但是我很忐忑.上网查了我 比较大小:根号22___5(填“大于”或“小于”求值 ±根号4又25分21= 小白加小白等于? 计算0.75^-1×(根号下3/2)^1/2×(27/4)^1/4+10(根号下3-2)^-1+1 小白加小白等于什么 通过估算,比较根号2分之根号5-1与8分之5的大小 是个灵异事件 有人问我小白加小白等于什么 小白加小白等于多少 如果x+5=10.那x是多少, 小白加小白等于什么呢? 八进制数0123的值相当于十进制的83;十六进制数0x123的值相当于十进制数的291.我不明白那83和291的结...八进制数0123的值相当于十进制的83;十六进制数0x123的值相当于十进制数的291.我不明白 (x+3):5=10:5 小白加小白等于……… 多元函数f(xy,x-y)=x²+y²,则af(x,y)/ax+af(x,y)/ay=? 英语六级要比英语四级难很多么?我还想知道英语六级的 具体做题顺序 是不是还像四级一样 分AB卷 而且是分开收 2013年十月网考四级成绩怎么查询? 化简(x²+xy+y²)(x²-xy+y²)=? 介绍一下英语四级的考法.本人大学本科自考,现要考英语四级.但我英语实在是不行.有没有社会考生的考法,或者是其他有效可行的途径. 2012年5月份的四级网考成绩怎么查?官网说7月15出成绩,怎么查?是五月四级网考! 比较根号2+根号7与根号3加根号五的大小 评析我的英语四级,望指教我的英语4级的成绩总分是:464听力:169阅读:157综合:47写作:91,哪位可以帮我分析下我的薄弱项吗?我对四级的评分不是熟悉-想继续考6级-望各位能给我些建议,先 网考四级怎么查啊是网考,希望大侠不要弄混了 英语谜语,可能是脑经急转弯how many feet are there in a yard 如何解(x-0.3)分之36-x分之36=4 大学英语四级网考能查成绩吗怎莫不能查啊 这是10进制转几进制的?6bb8121b3db2771a65daeacb29342c429ec1d948dc1841b1340d239b4b04d41a复原成十进制是什么?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn