软件注册站
热情软件屋

 
如何显示资源文件中GIF 文件
编号: QA000082    
建立日期: 1998年11月7日 最后修改日期: 1998年11月7日
所属类别: Visual Basic - 图形、图象
   
    我把 GIF 文件编译入资源文件 Res 中,我的问题是如何使用 VB 提供的 PictureBox 控件显示它?
    (Beginner)
   
    由于GIF资源不是Windows的标准资源,所以解决这个问题需要先将GIF资源写到一个临时文件,然后用LoadPicture显示文件,最后再删除掉磁盘上的临时文件。我们假定你的资源文件如下:
    102 GIF c:\about.gif
    你可以用这样的语句来实现:
    SaveFileFromRes(102, "GIF", "C:\about.gif")
    Picture1.picture = LoadPicture("C:\about.gif")
    Kill "C:\about.gif"
    这里的C:\about.gif只是一个例子,在实际编程你可以用Windows API的GetTempFileName来生成临时文件名(但GetTempFileName生成的临时文件扩展名为.tmp,需改为.gif)。这里的SaveFileFromRes函数来完成写临时文件的工作,具体代码如下:
    Public Function SaveFileFromRes(vntResourceID As Variant, sType As String, sFileName As String) As Boolean
     '======================================================='
     '函数:SaveFileFromRes 从http://www.china-askpro.com下载 '
    '======================================================='
     目的: 从资源文件调入自定义资源,然后写入磁盘上的文件 '
     '返回值: 如果没有错误为True,否则为False '
     '注意: sType 必须同资源文件的定义相同(包括大小写)! '
     ' 假定sFilename是合法的,可写的 '
     '======================================================='
     Dim bytImage() As Byte ' Always store binary data in byte arrays!
     Dim iFileNum As Integer 'Free File Handle
     On Error GoTo SaveFileFromRes_Err
     SaveFileFromRes = True
     'Load Binary Data from Resource file
     bytImage = LoadResData(vntResourceID, sType)
     'Get Free File Handle
     iFileNum = FreeFile
     'Open the file and save the data
     Open sFileName For Binary As iFileNum
     Put #iFileNum, , bytImage
     Close iFileNum
     Exit Function
    SaveFileFromRes_Err:
     SaveFileFromRes = False: Exit Function
    End Function
    

    这个方法不但适用于GIF文件,也适用于其它类型的文件。

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 图形、图象, picture, graph, image, draw

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio