找回密码
 加入
搜索
查看: 7219|回复: 12

[AU3基础] 如何调用位图资源显示到gui上[已解决]

 火.. [复制链接]
发表于 2011-6-12 18:00:38 | 显示全部楼层 |阅读模式
我添加了一张位图到exe资源中,如图:

然后在gui上添加一个图片控件,目的是想把资源中的位图显示到gui上:
$Pic1 = GUICtrlCreatePic("", 0, 0, 261, 49)
guictrlsetdata($Pic1,"????????")
这个地方不知道是不是这么调用,我试了n多方法,就是实现不了,请有研究过的朋友帮忙说下方法,谢谢了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-6-12 19:09:10 | 显示全部楼层
#include <WinAPI.au3>
#include <Constants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Const $STM_SETIMAGE = 0x172

$hGUI = GUICreate("Test", 400, 300)

$hStatic = _WinAPI_CreateWindowEx(0, "Static", "", BitOR($WS_CHILD, $WS_VISIBLE, $SS_BITMAP), 5, 5, 0, 0, $hGUI, 1)

$pLibrary = _WinAPI_LoadLibrary("cryptui.dll")
$hBitmap = _WinAPI_LoadImage($pLibrary, 4103, $IMAGE_BITMAP, 0, 0, $LR_DEFAULTSIZE)

_SendMessage($hStatic, $STM_SETIMAGE, $IMAGE_BITMAP, $hBitmap)
_WinAPI_FreeLibrary($pLibrary)

GUISetState()
While GUIGetMsg() <> -3
WEnd
发表于 2011-6-12 19:36:37 | 显示全部楼层
#include <GDIPlusEx.au3>

Local $hInst, $hBitmap
$hGUI = GUICreate("Resource Example", 400, 350)
GUISetState()

_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hInst = _WinAPI_LoadLibrary(@SystemDir & "\taskmgr.exe")
$hBitmap = _GDIPlus_BitmapCreateFromResource($hInst, 103)
_GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 20, 20)
While GUIGetMsg() + 3
WEnd
_GDIPlus_ImageDispose($hBitmap)
_WinAPI_FreeLibrary($hInst)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()
发表于 2011-6-12 20:39:41 | 显示全部楼层
学习了,收藏先
发表于 2011-6-12 22:32:21 | 显示全部楼层
gOOD~gOOD~
 楼主| 发表于 2011-6-13 18:00:49 | 显示全部楼层
本帖最后由 haijie1223 于 2011-6-13 18:04 编辑

回复 2# pusofalse


    p版 因为我的exe文件是自己的au3文件编译的,用
#AutoIt3Wrapper_Res_File_Add=winrarsc.bmp,位图,1223
加进去的位图,用你的方法调用不成功。不知道是我临摹有误,还是这个方法,不适合这样添加进去的位图资源。
 楼主| 发表于 2011-6-13 18:03:28 | 显示全部楼层
回复 3# 3mile


    3m  谢谢你的代码  不过我试了一下,提示缺少GdiPlusEx.au3这个udf
于是从论坛搜索下载了一个,提示很多错误。
如:
ERROR: $tagDTTOPTS previously declared as a 'Const'
";int BorderSize;int FontPropId;int ColorPropId;int StateId;int ApplyOverlay;int GlowSize;ptr DrawTextCallback;int lParam;"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
D:\autoit3\Include\GDIPlusEx.au3(1037,41) : ERROR: $DTT_TEXTCOLOR previously declared as a 'Const'
Global Const $DTT_TEXTCOLOR = 0x00000001
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
请3m分享一下这个udf吧  谢谢
发表于 2011-6-13 19:20:20 | 显示全部楼层
不好意思,应该附上相关函数的.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2018-3-16 16:49:51 | 显示全部楼层
现在翻回来看当年的问题好幼稚,接贴吧
发表于 2018-5-17 09:43:05 | 显示全部楼层
发哥,问题解决了吗。。。
 楼主| 发表于 2018-5-17 20:43:44 | 显示全部楼层
回复 10# 862228699


    当然解决了, 以前还比较菜,都是些菜鸟问题而已。
发表于 2018-5-24 19:55:37 | 显示全部楼层
多谢楼主多谢了
发表于 2019-8-15 17:32:20 | 显示全部楼层
这个非常值得学习!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 11:08 , Processed in 0.080822 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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