找回密码
 加入
搜索
楼主: 298311657

如何调用DLL中的图片~不是图标~

  [复制链接]
发表于 2009-8-15 09:44:24 | 显示全部楼层
用下面的方法可以
#include <GDIPlus.au3>
GUICreate("从dll中载入位图", 440,200)
$pic1 = GUICtrlCreatePic("",10,10,410,70)
$pic2 = GUICtrlCreatePic("",10,100,410,70)
GUISetState(@SW_SHOW)
Func _ResourceGet($ResName, $DLL = -1)
If $DLL = -1 Then
          $hInstance = _WinAPI_GetModuleHandle("")
        Else
          $hInstance = _WinAPI_LoadLibrary($DLL)
        EndIf
        If $hInstance = 0 Then Return SetError(1, 0, 0)
                $hBitmap = _WinAPI_LoadImage($hInstance, $ResName, 0, 0, 0, 0)
                If @error Then Return SetError(2, 0, 0)
                Return $hBitmap ; returns handle to Bitmap       
EndFunc

Func _SetBitmapToCtrl($CtrlId, $hBitmap)
       Local $hWnd = GUICtrlGetHandle($CtrlId)
        If $hWnd = 0 Then Return SetError(1, 0, 0)
        Local $oldStyle = _WinAPI_GetWindowLong($hWnd, -16)
        If @error Then Return SetError(2, 0, 0)
        _WinAPI_SetWindowLong($hWnd, -16,BitOR($oldStyle, 0xE))
        If @error Then Return SetError(3, 0, 0)
        Local $oldBmp = _SendMessage($hWnd, 0x0172, 0, $hBitmap)
        If @error Then Return SetError(4, 0, 0)
    If $oldBmp <> 0 Then _WinAPI_DeleteObject($oldBmp)
        Return 1
EndFunc

Func _ResourceSetImageToCtrl($CtrlId, $ResName, $DLL = -1)
        $ResData = _ResourceGet($ResName, $DLL)
                _SetBitmapToCtrl($CtrlId, $ResData)
                If @error Then Return SetError(2, 0, 0)
        Return 1
EndFunc
_ResourceSetImageToCtrl($pic1, "#131", @SystemDir & "\shell32.dll")
_ResourceSetImageToCtrl($pic2, "#130", @SystemDir & "\shell32.dll")

While 1
    If GUIGetMsg() = -3 Then Exit
WEnd

评分

参与人数 1金钱 +2 贡献 +2 收起 理由
lynfr8 + 2 + 2

查看全部评分

发表于 2009-8-15 23:57:01 | 显示全部楼层
学习了,我顶顶顶。
发表于 2010-3-24 16:26:03 | 显示全部楼层
看不明白。呵。以后会用到。先马克
发表于 2010-4-17 16:18:13 | 显示全部楼层
回复 16# wan6376 win7看不到
发表于 2010-7-15 22:06:52 | 显示全部楼层
哈哈!真管用!认真领悟中。。。。
发表于 2010-7-15 22:13:57 | 显示全部楼层
我是来学习的,,感谢P版给出答案。。
发表于 2010-8-11 15:09:09 | 显示全部楼层
学习了,谢谢各位大X们;
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-3 12:34 , Processed in 0.065444 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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