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

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 文件查看器中找找!
Facebook发布开源项目Tweaks,让iOS应用开发更加便捷 移动开发创业团队再下一城!UCloud与飞流战略合作 【走进支付宝】即将开场,问题大征集! 开发者薪资调查:半数开发者工作十年方可迎来好“薪”情 沟通更畅快 HipChat推出1对1视频和屏幕共享功能 AMD宣布支持DirectX 12 为游戏开发者带来更多福利 开发者薪资调查:2013年哪种编程语言最赚钱? 苹果挖墙脚未果,黑莓高管跳槽被起诉 不看不知道:六个超大规模Hadoop部署案例 豌豆荚发布应用内搜索技术协议 兼容App Indexing Oculus 21岁鬼才创始人:收购不等于改变 Unite China 2014课程解析:Unity教育行业专场免费开放 Instagram技术窥探,助你打造响应式App 切勿妄谈Hadoop,以及4个数据管道打造实践 一周消息树:雨果·巴拉与小米的那些事儿 《近匠》轻邮联合创始人Wesley:移动App要有撼动企业服务的野心 Facebook开源MySQL分支,谷歌、LinkedIn、Twitter等大拿捧场 淘宝明风:基于Graphx的图计算实践分享 调查显示:2015年Android将统治全球操作系统 初创公司最爱使用的那些开发工具 仙剑之父姚壮宪强势加盟Unity游戏及应用大赛 智能可视化平台:DCOS之数据中心抽象 一周热点:5美分/GB的开源存储系统,及硬盘质量“最差”的希捷 英特尔收购可穿戴技术公司BASIS Science 设计移动App的十大技巧 皮皮网陈超:易用与性能兼备,Spark蓬勃发展! Sahara顺利毕业,将加速OpenStack与Hadoop的融合 十大将拯救地球的开源硬件项目 Android应用程序开发者需要了解的五个内容 百度轻应用插件CloudaMySQL诞生记 盘点Github所用的开源项目 CB6的project Manager 让人头疼! 关于截取字符串的问题 请大家帮我看一下这程序 这样的菜单效果怎么做啊!! SendMessage()的问题... 一个被挂起的进程(失去热点)还能收到键盘的消息吗? cb6 的 project Manager 让人头疼! 求助,Apache设置问题 高手请进!!分,不够再给!!是关于session的问题!! samsung550s显示器一问,在线等待…… RedHat 8.0 启动进不了XWindow视窗,怎么办呢???? 在C#中如何完成byte[]之间的拷贝,或者部分拷贝 请问Fuction(T("helpnet"),int i)中的T是和作用? 在客户服务器系统中如何向服务器中请求查询数据? 连接SQL——PLUS问题,用connect / as sysdba,抱错:服务句柄未初始化 关于安装程序的问题,来者有分 急,请高手赐教,在线 初学C++,我是不是需要详细的了解模板技术 游戏开始时的图形菜单和控件是怎么做的? 请诸位将已解决,但长期不结账的case贴在这里。 前几天搞了一个小东西 抱着试试看 在csdn上发布了 没想到今天一看 已经有十多个朋友捧场进行了下载 ######请问,不创建窗体,怎么读出窗体中的控件的属性? 答对给500分! 这个痛苦的程序已经到最后关头,请大家一定要帮我一把:) 100分求优秀MySQL技术网站。 位图菜单... 如何让自己的程序不在Window任务管理器里面出现? 关于DTS数据库导入的问题 网页设计 怎么出现了这么怪的问题?……大家进来看一下阿,来者有分!! 问大家一个语法问题;下面的句子是什么含义? 怎么样从文件里读出数据? 大家注意一下,看看里面的内容,如果有自己的ID,请尽快结贴,要不将被强制结贴! 在asp.net内怎样表示局域网络上的共享目录的路径??? 如何让测量结构可通过WEB方式查看, 急急急, 请各位WEB开发高手帮帮忙 再当一年程序员,然后去卖血。心情沮丧,散分。 怎样把jpg文件设置为墙纸? 查询出字段中最大值的记录????字段为(number)型!在线等候! 请问新改版的CSDN是用ASP.Net开发的吗???我有事要请教 有没有对格斗游戏原理精通的朋友吗? javascript如何定制子框架(iframe)的onkeyup事件,在线等,谢啦! 有人知道该怎样解决吗??(在线) 急告:怎样向打开的批处理文件的命令提示符界面中输入参数 无聊兄,海良兄请进 基础问题:怎样能将一个int型变量转变为float型? 高分请教 VB中访问SQL 2000的表格语句? 各位大哥,给点意见 win2000 advance sever与win xp!xp不能上网浏览网页 有WEB开发经验的请进 请问谁有ocr的相关资料? 偶这样的人为什么找工作难? “回也,非助我者也”表现了孔子怎样的思想教育? To protect the Earth,we plant___trees every year.A.million of B.millions C.millionD.millions of2.It's impoetant for us to protect the Earth____we have only one Earth.A.because B.because of C.why D.so原因! Tom is said to have turned___ doctor in ___ early twenties.a:/;/b:/;hisc:a;thed:a;his 描写孔子的成语一个 七年级英语学习; turn it on .此句中“on"的词性是副词还是介词? tell me why 中文翻译 Poor Tom,he had his pocket lost yesterday.这个句子是错误的,为什么? 英语选择:-Turn off the light.-_________?A.Excuse me B.SorryC.Pardon D.Don‘t you选择并说明理由! Tom wanted to pay for his meal at the reataurant,but the waiter said,"No,you do not have to do thatToday is mo publican is birthday,so all the food you had is on the house ." on the house can you tell me why why why why why 一首英文歌中的歌词. does mr smith live next door to you——Does Mr Green live next door to you?——No,but he_______A,used to B,used to doC,used to be D,used to live求分析其他选项 英语翻译如 “ILOVE YOU”就是 “爱拉乌油” 沪江开心词场背单词效果怎么样?可以同时背多语种词书不? Do the Tom live next door to you A used to B used to do 为啥不选B表示过去啊 动词加er变名词 ready 如何加er 变名词ready 如果要变成名词,变成准备者之类的 如何加 Tom was ill the day before yesterday.(对划线部分提问)划线部分是illWhat was ______ ______ Tom the day before yesterday The mother didn't know who_____for the broken glass.A.blamed B.to blame C.be blamed D.would blame为什么要选B呢? 英语翻译In my dream'children sing A song of love for every boy and girl The sky is blue and fields are green And laughter is the language of the world Then i wake and all i see Is a world full of people in need Tell me why (why) does it have to b How was the weather ______in the mountain yesterday? The mother didn't know who ___ for the broken glass as it happened while she是 to blame,还是 to be blamed tell me why 歌词急 求孔子的个人简介500字左右,我要写一篇文章, I don't know______or not.A.whether he is at home B if he is at home C that he is at homeD whether is he at home The mother didn't know who to blame for the broken glass.为什么要用 to blame 为什么不是who was to blame ,而是who to blame ,不是有个短语是 sb be to blame 为什么今天沪江的开心词场打不开? another 、others、 the other、other、anyother的区别 Tom ——(meet)John at the airport yesterday.横线上是填meet还是meets 谁能详细比较at issue,in debate,in dispute的异同?要有例句,要有自己的解释,不是从别的地方复制 We know (that) the earth is not round We know the earth (that) is not round 哪句话是对的从句的位置?上面的that都不省略.第二个为什么错了?我想让“我们知道地球”这前半句做主语,我不想让“我们”做主 The mother didn't know who ____ for the broken glass.A.would blameB.was to blameC.blamedD.blames求答案及原因, debate on 和debate about 的区别是什么?RT anyother,the other,the others,another怎么区分? Sam was___ ___(被要求)meet Jim at the train station yesterday. quarral与debate的区别最好是用法上的区别.非常感谢! 为什么vivos7it手机不能使用沪江开心词场 The mother didn't know who to blame for the broken glass as it happened while she was out.为什么用who 而不用whom啊? dispute,debate,contention这仨词啥区别?如果表示一个社会问题的辩论 应该用哪个? The window is made ()glass. We all know that the earth is round.同义句转换:_____ _____ _____ to all,the earth is round. another other the other等一类词有什么区别? somebody broken the glass of the window.(反义疑问句) somebody broken the glass of the window_____ ________? Tell me why I can't be there where you are another和the other有什么区别?(当代词讲的时候)A:I’m sorry I have lost the pen that you gave meB:Don’t worry.There is () 用哪个? The window is broken.Try to ( ) who broke it.A.find outB.findC.lookD.look for 英文翻译、I can not tell me why you are pro Let's ______ something to eat.A.to have.B.having.C.have.D.has nightwish - I want my tears back歌词大意 He is going to have a glass of wine with (Tom).对括号里提问 let me to have a book改错 when did tom lose his new pen这句话对吗 ---Do you know ___ Lily is at home?---No,I donnot know.A.that B.whether let me have a book Where is the boy __that__ arm was hurt by the window _____ glass is broken?这里要填什么关系代词 关于number和amount的区别1、表示数量时,the number/amount of sth哪个接可数,哪个接不可数?2、它们前面是接large/big?3、它们本身可数不?若可数?怎么理解复数情况? have,let's,carrots,Mary,把他们连词成句 i want my tears 单选-Dad!Tom's broken a glass!-Dad!Tom's broken a glass!-_____.Accidents will happenA.No wayB.Doesn't matterC.No trouble at allD.Don't mention it 与孔子思想教育有关的成语 the window is broken是系表还是被动broken是用于系表 还是用于被动 怎么区分 Tom’s computer is broken.He’ll have it _______.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘