注册 登录
编程论坛 VB6论坛

VB6.0中,对于LoadResPicture函数的使用,出现错误,求解。

小刀神 发布于 2018-06-04 18:15, 4382 次点击
代码和错误提示以及资源编辑器以截图的方式贴出:
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录


求解……
9 回复
#2
风吹过b2018-06-04 18:34
LoadResPicture 函数
      

用以从资源 (.res) 文件装载位图、图标或光标。

语法

LoadResPicture(index, format)

LoadResPicture 函数的语法包含下列部分:

部分 描述
index 必需的。一个整数或字符串,它用来指定资源文件中数据的标识符 (ID) 。ID标识符为 1 的资源保留给应用程序的图标。
format 必需的。一个数值或常数,如下列“设置值”中所描述的,指定返回数据的格式。


设置值

用于 format 的设置值有:

常数 值 描述
vbResBitmap 位图 0 位图资源
vbResIcon 图标 1 图标资源
vbResCursor 2 光标资源


说明

可以使用 LoadResPicture 函数代替对存储在 Form 或控件的 Picture 属性中的图形的引用。

将位图、图标或光标存储在资源文件中并从该资源文件对它们进行访问能改进装载时间,这是因为可以根据需要从资源文件单独装载,而不是在装载 Form 时一并全部装载。

LoadResPicture 的使用对于 Visual Basic 应用程序的本地化有好处,这是因为需要翻译的资源在一个资源文件中被隔离,并且无须访问源代码或重新编译该应用程序。


------------------
第二个参数错了。加载的是一个 啥类型的资源? 对应的第二个参数也要指定 是啥类型的资源。按MSDN的帮助改吧。
是图片,做BMP,放到图像里,是鼠标做CUR,放对应类目里。
你加载的是其他类型的资源,但你要求返回位图,然后到位图资源里去找,找不到,当然报资源不存在。

另外还有一个  LoadResData 函数,自定义数据,我没时间去测试 如何加载了,你自己试试。

#3
小刀神2018-06-04 19:52
回复 2楼 风吹过b
不能加在其他资源么?我想加载的是GIF格式的图片,只能放在其他资源了。
#4
wufuzhang2018-06-05 09:50
回复 3楼 小刀神
图片在C盘(自己可以修改路径),用LoadPicture函数直接从C盘中加载,代码如下:
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Image1.Picture = LoadPicture("C:\pic.gif")
End Sub
#5
风吹过b2018-06-05 11:16
GIF格式的图片

到窗体上建 Image 控件,可以建控件数组,在这个控件里加载 GIF格式的图片,不支持动画。
然后把这个控件,移到窗体外就可以了。
需要使用时图片时,复制图片就可以了。

如果需要透明,那就使用API复制图像。
需要图片叠加,同样使用API。

控件也是一种容器,可以容纳某些特定的数据。
#6
ZHRXJR2018-06-05 12:04
只有本站会员才能查看附件,请 登录

是不是应该这样。
#7
xzlxzlxzl2018-06-05 22:57
资源文件是和代码一起编译的,在编译好的exe文件里,而这也应该是题主需要的(我就曾经做过不让他人轻易换背景图片而把图片放资源文件的应用)那些指导答主用loadpicture的都是答非所问,只有风版主在正确为题主答疑解惑。
如果是gif文件,题主可尝试用ie控件加载,不需要api也可让其动起来,但需要临时将gif图片从资源中释放出来,用完后删除即可。
#8
小刀神2018-06-08 00:36
回复 7楼 xzlxzlxzl
怎么释放资源中的文件?LoadResPicture函数加载其他类型的资源么?
#9
风吹过b2018-06-08 09:08
LoadResPicture 得到的是一个 一维BYTE 数组,把这个数组以二进制模式,写入一个新的文件就可以了。


#10
lwjohn2020-12-17 01:32
回复帖主:你的代码是对的,但是添加资源文件的格式错误。一定要选择位图图标,然后指向添加预先拷贝到当前文件夹里的位图,自动在“位图”目录下生成序号101;同法必要时依次生成102............;注意最后保存。
1