找回密码
 加入
搜索
查看: 16264|回复: 17

[原创] 从DLL中加载图片资源到图片控件

 火... [复制链接]
发表于 2010-5-9 22:12:16 | 显示全部楼层 |阅读模式
au3内置函数GUICtrlSetImage 只能设置DLL中的ico图标,对于bmp图片无能为力
要给创建的图片控件加载DLL中的图片,可以使用API来达成要求
LoadLibraryA
LoadBitmap
SendMessage
FreeLibrary
;~ By Crossdoor
;~ 从DLL文件中加载图片到图片控件
;~ _SetBitmap(DLL名称, 图片编号, 控件句柄)
;~ 成功返回1
;~ 示例:
;~ $pic = GUICtrlCreatePic("", 0, 0, 640, 480, 0x04000000)
;~ _SetBitmap('Res.dll', '#143', $pic)
Func _SetBitmap($sDll, $sBitmap, $hwnd)
        $LoadLibraryA = DllCall("Kernel32.dll", "hwnd", "LoadLibraryA", "str", $sDll)
        If @error Then Return SetError(@error, 0, 0)
        $LoadBitmap = DllCall("User32.dll", "hwnd", "LoadBitmap", "hwnd", $LoadLibraryA[0], "str", $sBitmap)
        If @error Then Return SetError(@error, 0, -1)
        DllCall("user32.dll", "lparam", "SendMessage", "hwnd", GUICtrlGetHandle($hwnd), "int", 0x0172, "wparam", 0, "lparam", $LoadBitmap[0])
        If @error Then Return SetError(@error, @extended, "")
        DllCall("Kernel32.dll", "hwnd", "FreeLibrary", "hwnd", $LoadLibraryA[0])
        Return 1
EndFunc

评分

参与人数 3威望 +2 金钱 +122 贡献 +13 收起 理由
kodin + 50 十分好用,谢谢分享。
lynfr8 + 22 + 13 很棒
afan + 2 + 50

查看全部评分

发表于 2010-5-9 22:19:19 | 显示全部楼层
这个很简洁啊,谢谢~
发表于 2010-9-13 12:33:25 | 显示全部楼层
初学,进入收藏一下。不管怎样。谢谢
发表于 2010-10-7 10:17:04 | 显示全部楼层
好东西,,要学学
发表于 2010-12-5 17:16:05 | 显示全部楼层
这个东西不错哦,很强
发表于 2011-2-22 04:39:41 | 显示全部楼层
太好用了,居然调用EXE图片都支持!爽歪歪。
发表于 2011-3-16 15:54:23 | 显示全部楼层
so good..thanks!!!!
发表于 2011-4-2 12:06:01 | 显示全部楼层
这个东西不错哦,很强
发表于 2011-4-4 20:55:20 | 显示全部楼层
发个dll样板上来看看?
发表于 2011-4-11 18:29:37 | 显示全部楼层
新手学习学习
发表于 2012-11-14 19:29:29 | 显示全部楼层
回复 1# 298311657
正需要,谢谢了!
发表于 2013-6-19 00:50:27 | 显示全部楼层
受教了,非常感谢!
发表于 2014-8-1 15:38:10 | 显示全部楼层
受教了,非常感谢,感谢
发表于 2014-9-23 10:21:00 | 显示全部楼层
这个很好啊,支持一下
发表于 2014-10-31 08:51:41 | 显示全部楼层
谢谢楼主分享提供
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-1 09:28 , Processed in 0.108296 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表