乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 71|回复: 7

[编程交流] VBA-替换图像

[复制链接]

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 14:33:03 | 显示全部楼层 |阅读模式
我在一个窗体上有12个命令按钮,我试着把小图像放在它们附近。我可以插入12个图像,但这样图像就是程序的一部分。是否可以以某种方式编译图像(在DLL文件中)并指示VBA从那里获取图像?我希望用户能够在运行程序之前更改图像,只需替换包含图像的文件。
哦,我会从一开始就接受帮助
有人能帮我吗?
非常感谢!
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 14:45:13 | 显示全部楼层
我相信将位图资源编译到dll将是提供初始图像的最有效方式。然而,编译任务需要VB6。这也意味着,即使VB6在设计时可用,VBA用户在运行时也无法更改或向该dll添加其他图像。
 
另一种可能的选择是将初始图像作为单个文件存储在DVB项目的文件夹中,尽管可能需要更多的代码。当表单首次初始化时,可以运行代码来确定DVB自己的路径并加载适当的图像。需要额外的代码才能让最终用户修改图像。
 
我从来没有使用过任何一种外部图像资源的方法(我通常只是让它们成为程序的一部分),但这个过程听起来确实很有趣。我将在下周进一步调查,甚至只是为了满足我自己的好奇心。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 14:51:16 | 显示全部楼层
 
事实上,这并不完全正确。我应该补充一点,自由程序ResourceHacker(http://angusj.com/resourcehacker/)还允许没有VB6的用户修改资源dll。不过,这必须在VBA表单之外完成。
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 15:06:58 | 显示全部楼层
谢谢你的回答!
用户无需修改DLL文件;程序应该从中读取图像。如果他用一个新的DLL(名称相同)替换DLL,当他启动程序时,将看到新的图像。
现在,你能告诉我如何从包含12个位图的DLL中读取特定图像吗?
我只是从这里和那里学到了一些VB(主要是从互联网上),但我从来没有这么深的发泄。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:09:15 | 显示全部楼层
嗨,福卡罗,
 
我在将dll资源图像分配给VBA表单方面的成功有限。到目前为止,我已经收集了从dll读取图像所需的所有api调用,但VBA表单似乎确实公开了用于图像分配的适当句柄。
 
我建立了一个测试项目,有四个图像(见附件)。目前,它将第一个最多的图像读取到内存中,并且可以很容易地将其分配给AutoCAD作为宿主应用程序,但事实证明很难将其放到表单上(请参见附图)。
 
与VB6形式相比,VBA形式似乎步履蹒跚。我会继续四处寻找,看看有没有新的发现。
 
肖恩
153308lx46ge1o79oe7nc7.jpg
ImgResProjFiles。拉链
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 15:23:25 | 显示全部楼层
好的,非常感谢您的时间!
我在做一个程序,我试着把好看的图片放在按钮附近。但对于色盲的人,我希望提供高对比度的图像,我认为DLL文件将是一种方式;同一个节目,不同的人有不同的面孔。
我仍在尝试自己,但正如我之前所说,我的VB(A)非常有限
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:28:46 | 显示全部楼层
 
毫无疑问
 
VB。NET提供了更多的功能,但不幸的是,它也提供了更多的学习曲线。
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 15:37:33 | 显示全部楼层
哈哈!
引用我的话很好!
 
无论如何你能告诉我怎么用VB做吗?可能这会让我更接近解决方案
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 00:07 , Processed in 0.425725 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表