CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  网络编程

望高手指点,指点!VB的picturebox如何转载网页的图片

楼主canic(哈哈)2006-01-07 10:08:16 在 VB / 网络编程 提问

我现在用webbroswer打开一个页面,里面有一个<img   scr="http://www.knowsky.com/inc/code.asp"></img>  
  。只要求用vb的PictureBox来转载这一个图片?有什么号方法,请高手指点,指点啊。 问题点数:100、回复次数:4Top

1 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2006-01-07 10:18:10 得分 0

保存到本地文件再打开Top

2 楼canic(哈哈)回复于 2006-01-07 10:24:22 得分 0

这当然要求自动运行。  
  因为我的程序是每隔一段时间就刷新一次页面,因为<img>标记里面的图片每次都在变的。Top

3 楼rainstormmaster(暴风雨 v2.0)回复于 2006-01-07 21:40:25 得分 100

'利用IPersistStream接口和IStream接口实现  
  '可以从http://www.mvps.org/emorcillo/download/vb6/tl_ole.zip下载文件,下载后解压,并注册、引用olelib.tlb  
  '窗体上1个inet控件(工程   部件   找到Microsoft   Internet   Transfer   Control   6.0,选中它,确定),一个timer控件,一个picturebox  
  Option   Explicit  
  Const   GMEM_MOVEABLE   =   &H2  
  Const   GMEM_ZEROINIT   =   &H40  
  Const   GHND   =   (GMEM_MOVEABLE   Or   GMEM_ZEROINIT)  
  Private   Declare   Function   GlobalAlloc   Lib   "kernel32"   (ByVal   wFlags   As   Long,   ByVal   dwBytes   As   Long)   As   Long  
  Private   Declare   Function   GlobalSize   Lib   "kernel32"   (ByVal   hMem   As   Long)   As   Long  
  Private   Declare   Function   GlobalLock   Lib   "kernel32"   (ByVal   hMem   As   Long)   As   Long  
  Private   Declare   Function   GlobalUnlock   Lib   "kernel32"   (ByVal   hMem   As   Long)   As   Long  
   
  Const   PictureID   =   &H746C&  
  Private   Type   PictureHeader  
        Magic   As   Long  
        Size   As   Long  
  End   Type  
   
   
  Public   Sub   Picture2Array(ByVal   oObj   As   StdPicture,   aBytes()   As   Byte)  
          Dim   oIPS   As   IPersistStream  
          Dim   oStream   As   IStream  
          Dim   hGlobal   As   Long  
          Dim   lPtr   As   Long  
          Dim   lSize   As   Long  
          Dim   Hdr   As   PictureHeader  
          Set   oIPS   =   oObj  
          Set   oStream   =   CreateStreamOnHGlobal(0,   True)  
          oIPS.Save   oStream,   True  
          hGlobal   =   GetHGlobalFromStream(oStream)  
          lSize   =   GlobalSize(hGlobal)  
          lPtr   =   GlobalLock(hGlobal)  
          If   lPtr   Then  
              lSize   =   lSize   -   Len(Hdr)  
              ReDim   aBytes(0   To   lSize   -   1)  
              MoveMemory   aBytes(0),   ByVal   lPtr   +   Len(Hdr),   lSize  
        End   If  
        GlobalUnlock   hGlobal  
        Set   oStream   =   Nothing  
   
  End   Sub  
   
   
  Public   Function   Array2Picture(aBytes()   As   Byte)   As   StdPicture  
  Dim   oIPS   As   IPersistStream  
  Dim   oStream   As   IStream  
  Dim   hGlobal   As   Long  
  Dim   lPtr   As   Long  
  Dim   lSize   As   Long  
  Dim   Hdr   As   PictureHeader  
        Set   Array2Picture   =   New   StdPicture  
        Set   oIPS   =   Array2Picture  
        lSize   =   UBound(aBytes)   -   LBound(aBytes)   +   1  
        hGlobal   =   GlobalAlloc(GHND,   lSize   +   Len(Hdr))  
        If   hGlobal   Then  
              lPtr   =   GlobalLock(hGlobal)  
              Hdr.Magic   =   PictureID  
              Hdr.Size   =   lSize  
              MoveMemory   ByVal   lPtr,   Hdr,   Len(Hdr)  
              MoveMemory   ByVal   lPtr   +   Len(Hdr),   aBytes(0),   lSize  
              GlobalUnlock   hGlobal  
              Set   oStream   =   CreateStreamOnHGlobal(hGlobal,   True)  
              oIPS.Load   oStream  
              Set   oStream   =   Nothing  
        End   If  
  End   Function  
   
  Private   Sub   Form_Load()  
          Timer1.Interval   =   1000  
          Timer1.Enabled   =   True  
  End   Sub  
   
  Private   Sub   Timer1_Timer()  
          Dim   buff()   As   Byte  
          buff   =   Inet1.OpenURL("http://www.knowsky.com/inc/code.asp",   icByteArray)  
          Set   Picture1.Picture   =   Array2Picture(buff)  
  End   Sub  
  Top

4 楼rainstormmaster(暴风雨 v2.0)回复于 2006-01-07 21:42:16 得分 0

上面程序的要点是利用IPersistStream接口和IStream接口实现了byte数组和stdpicture对象的转换,避免了临时文件的生成  
  Top

相关问题

  • PictureBox问题,新手,对vb不熟,请高人指点,谢谢!
  • 请网页制作高手指点
  • 网页提示下载,请指点
  • **********lihonggen0(用VB)*****************请指点一下
  • VB高手指点我一下
  • 请VB高手指点迷津!
  • vb 入门指点+加提知识料
  • VB转学VC请前辈指点!!!
  • 指点指点
  • 急。。无法解释,高手请指点,网页刷新问题

关键词

  • vb
  • longprivate
  • gmem
  • hmem
  • 图片
  • byval
  • kernel32
  • long
  • lib
  • declare function

得分解答快速导航

  • 帖主:canic
  • rainstormmaster

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo