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

自己的IE——用VB制作浏览器

HTML文档下载 WORD文档下载 PDF文档下载
自己的IE——用VB制作浏览器

上海 钱可栋

  
  程序的主角是一个ActiveX控件:WebBrowser。当然,缺省状态下VB的工具箱中并没
有它,我们得手工加入,方法是:右击工具箱,在出现的快捷菜单中选择“部件...”,
确保在弹出的对话框中选中“控件”标签,找到Microsoft Internet Controls,在它前
面的小框中打钩,然后确定。此时你会发现工具箱中多了两个小图标,其中,地球图标代
表的控件正是我们需要的WebBrowser。
  由于许多人对WebBrowser控件不是很熟悉,VB的帮助中也没有有关它的内容(反正
我没有找到),因此有必要介绍一下它的属性、方法和事件,限于篇幅,我们只涉及程
序中用到的:
  属性:LocationURL 返回控件显示WEB页面的URL。
  方法:Navigate 转移到指定的URL或打开指定HTML文件。
  事件:1.DownloadBegin 下载操作开时触发。
  2.DownloadComplete 下载操作完成、终止或失败时触发。
  3.ProgressChange WebBrowser控件跟踪下载操作的过程,并定期触发此事件。
其语法为:Sub WebBrowser_ProgressChange (ByVal Progress As Long, ByVal
ProgressMax As Long)。Progress变元是当前已下载的数据总量,ProgressMax变元
是将要下载的数据总量。
  4.TitleChange 当前文档标题改变时触发
  除了WebBrowser控件外,程序还需要一个Label控件:Label1;一个ComboBox控件:
combo1,用来显示URL地址;一个StatusBar控件:StatusBar1;一个ProgressBar控件:
ProgressBar1,用来显示下载进度(StatusBar控件和ProgressBar控件是ActiveX控件
Microsoft Windows Common Controls5.0的成员,加入工具箱的方法同WebBrowser控件),
这些控件的属性值都用缺省值。
  以下是程序清单:
  Option Explicit
  
  Private Sub Form_Load()
  Me.Caption =“My Explorer”
  Label1.Caption = “URL”
  Combo1.Text = “”
  Combo1.Top = Label1.Height
  Combo1.Left = 0
  WebBrowser1.Top = Combo1.Top + Combo1.Height
  WebBrowser1.Left = 0
  Form_Resize
  StatusBar1.Style = sbrSimple
  ProgressBar1.ZOrder
  End Sub
  
  Private Sub Form_Resize()
  On Error GoTo a
  Combo1.Width = Form1.Width - 100
  WebBrowser1.Width = Combo1.Width
  WebBrowser1.Height = Form1.Height - Combo1.Height - 1000
  ProgressBar1.Top = Me.Height - StatusBar1.Height - 330
  ProgressBar1.Left = 0.25 * StatusBar1.Width
  ProgressBar1.Width = 0.75 * Me.Width - 250
  a:
  End Sub
  
  Private Sub Combo1_Click()
  `转到指定网址
  WebBrowser1.Navigate Combo1.Text
  End Sub
  
  Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
  Dim i As Long
  Dim existed As Boolean
  If KeyCode = 13 Then
  If Left(Combo1.Text, 7) <> “http://”Then
  Combo1.Text = “http://”+ Combo1.Text
  End If
  WebBrowser1.Navigate Combo1.Text
  For i = 0 To Combo1.ListCount - 1
  If Combo1.List(i) = Combo1.Text Then
  existed = True
  Exit For
  Else
  existed = False
  End If
  Next
  If Not existed Then
  Combo1.AddItem (Combo1.Text)
  End If
  End If
  End Sub
  
  Private Sub WebBrowser1_DownloadBegin()
  `下载开始时状态栏显示“Now Linking...”
  StatusBar1.SimpleText = “Now Linking...”
  End Sub
  
  Private Sub WebBrowser1_DownloadComplete()
  `下载完成时状态栏显示“Link Finished”
  StatusBar1.SimpleText = “Link Finished”
  ProgressBar1.Value = 0
  End Sub
  
  Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long,
ByVal ProgressMax As Long)
  `下载进行时进度条变化
  If ProgressMax = 0 Then Exit Sub
  ProgressBar1.Max = ProgressMax
  If Progress <> -1 And Progress <= ProgressMax Then
  ProgressBar1.Value = Progress
  End If
  End Sub
  
  Private Sub WebBrowser1_TitleChange(ByVal Text As String)
  Combo1.Text = WebBrowser1.LocationURL
  End Sub

豌豆荚范怀宇 I/O大会总结:Android无处不在 轻博客始祖Tumblr:哈希以支撑2.3万Blog请求/秒 《近匠》FIR.im:简单易用的内测分发工具 传苹果公司将于9月9日召开新一代iPhone发布会 近百家微信开发商参与征集评选活动 TOP10正浮出水面 Java程序猿,手游引擎怎么选? MDCC 2014优秀移动团队免费展位火热申请中 【微信讲师面对面】你在企业服务号开发中遇到的坑和难点 五个解决方案让MongoDB拥有RDBMS的鲁棒性事务 浅谈Apache Spark的6个发光点 安卓 “假ID” 签名漏洞,竟然骗过了支付宝和360 从Social到Big Data,移动App蚂蜂窝转型推新品 《近匠》nice曹大鹏,从男装导购到潮人社区的心路历程 DevOps扼杀的不是开发者,而是开发生产力! 利用Docker构建开发环境 Netflix公布Cassandra新性能:基于AWS的百万次写入每秒 一周消息树:谷歌Android遭遇“颠覆”危机 微软发布新应用Snipp3t,iOS平台首发且无Windows Phone版 TOP10优秀微信开发商随后揭晓 2014微信开发者大会开幕在即 8月12日:PC鼻祖IBM 5150迎来33周年 平板创作3D展现:蒙特利尔大学发明Hyve-3D设计系统 Quick Charge技术解析:关于手机快速充电的那些事儿 性能分析十八招,你用哪一招? 流程在企业内的作用及成熟度 Gartner:至2017年Chromebook销量将增2倍 后稀缺时代思考:机器横行下的人类夹缝求生 TIOBE 2014年8月编程语言排行榜:Swift跌出Top 20 精华回顾!历届MDCC大会精彩演讲与议程汇总 《近匠》Fancy3D:亿级游戏背后的轻量级引擎 假如李小龙是程序员…… Docker已扎根新一代PaaS 怎么样用asp实现阴历的查询??? 请高手赐教!! 大家帮忙:为什么我在调试程序时不能跟踪进入VCL的方法代码? JSP调用session的问题? ....同一用户不能同时在线两次的完整解决方法......在线等 批量数据提交 cqzyf 接分 1 问个VC6.0里面的1个小问题! 怎样使一个按钮成为默认按钮? 小问题,高分请教用滑动条制作的调色板问题。 在Asp怎样连接Access数据库? 跳线 高分求DELPHI4.0中的哪个做安装程序的工具,只要这个版本的! 难道是Delphi6的Bug吗?还望遇到过这样问题的大哥多多指教! 怎样实现要最新的信息? 一个疑惑的问题? 此觸發器該如何寫 关于数据库更新的问题!帮帮忙,50分就是你的啦! easy问题送大分,DLL中的资源,马上结贴 菜鸟刚学vc.net,新建了一个dialog based,只有一个窗体,我在窗体上放一个按钮,这就是我的程序了,运行之后生成了可执行文件,我把他拷 不明白交换机的网管功能? 请问:如何将richtextbox中显示的内容转换成图像信息?(急) 请各位同志帮我看看这段程序: 谢谢! 没有免费的午餐.各位求救.dbf文件损坏,如何修复(没有带.cdx文件) 在线等!急急急!!! 请大家帮忙 急需解决!!!!! 一个简单的问题,请帮忙 请教!如何用非模式对话框实现面板? 请问高手,这样是否可行? 是不是真的要我去当内裤了呀~~~~~~~~~~~~~在线等待!~!~!~! 请各位大侠帮忙:要在Excel中实现以下功能 如何往串口的发送脚送出一个持续10ms的低电平? 如何实现有些项输出到打印机,有些项输出到显示器,也就是有预览时能看到,而打印时不把他打印出来. ★紧急求助!!如何在CListCtrl中的非第一列贴图?或者设个标记?在线等待!★ memset、memcopy\memget等都是干什么的怎么用?? dropDownList的异常现象?????? 如何改变EventLog中Source和自定义Log的对应关系? 紧急求助,在线等待。 为什么无法实现? 请问vc60.idb和vc60.pdb是干什么用的? dreamweaver Mx再繁體系統中的使用 乱码问题!请高手赐教!! 请问在jsp中如何连接access数据库? 你愿意赐教吗? w3svc记录的时间跟系统时间不一致? 谁能告诉我在哪儿可以下载到微软BHO的例子? 一个弄了很长时间的问题,高手过来看看。。 怎样在网页中显示数据类型为"OLE 对象"的图片 可以帮我看一下这段程序吗? 谢谢! 急救我 请问 tomcat 中服务 问题? 我的心渐渐寒了,IT公司怎么这么没信誉呀? 24架美军“鱼鹰”运输机落户冲绳 半美国监听行为激怒欧盟 欧盟各国首脑纷德媒翻奥巴马“旧账” 称其冷酷不愿交水池捞2.87美元硬币买食物 穷困智德媒借美监听事件翻奥巴马\"旧账\"欧盟主席谈隐私 被称暗示美国搞监视是美媒解密美国国家安全局监控盟友的方式24架美军“鱼鹰”运输机落户冲绳 半沙特前高官批评美国中东政策 或联手埃澳大利亚最老双胞胎长寿秘诀:不与坏男美国19岁学生欲徒步闯南极 14岁曾欧盟主席谈隐私 被称暗示美国搞监视是西藏活佛在柏林开讲座 介绍藏传佛教和印度总理辛格不用手机电子邮件 不担心日本内阁会议通过特定秘密保护法案 欲印度东部洪灾致20万人受灾水池捞2.87美元硬币买食物 穷困智印度总理辛格不用手机电子邮件 不担心美国监听行为激怒欧盟 欧盟各国首脑纷促政府兑现修路承诺 小镇妇女性罢工拒美国19岁学生欲徒步闯南极 14岁曾星巴克回应\"价格歧视\"说贵是因为\"裸眼3D\"将大片搬进客厅 工博西泠印社110岁了 97岁的社长饶宗16号线拟12月试运营 罗山路站-滴要抬头看路低头做事 上海代表热议总理提前完成任务 沪今年已为2万余对夫妇两骗子租借会所假招聘 网络发假信息骗大上海国际花园发生火灾 一名50多岁27元拿铁贵不贵?央视质疑星巴克暴利你会像林志颖那样蹲下来和孩子说话吗?今秋申城最后一波桂花香来袭 大量晚花9月70城房价69个同比上涨北上广深沪民办博物馆核准17家准入标准将作\沪未参保人员补缴补交社保设门槛 一次上海首办八人制业余足球赛 16支业余中国工会十六大闭幕 上海代表团完成各亚冠决赛周六打响 恒大76万元购买6\"零起点\"入学\"白纸娃\" 三韩正召开居民座谈会把居民关心事办好卖萌成营销利器90后网店妹子漫画揽客梅德韦杰夫23日前往安徽 或参观“人
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘