haijie1223 发表于 2011-6-12 18:00:38

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

我添加了一张位图到exe资源中,如图:

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

pusofalse 发表于 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

3mile 发表于 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()

wsfda 发表于 2011-6-12 20:39:41

学习了,收藏先

inter701 发表于 2011-6-12 22:32:21

gOOD~gOOD~

haijie1223 发表于 2011-6-13 18:00:49

本帖最后由 haijie1223 于 2011-6-13 18:04 编辑

回复 2# pusofalse


    p版 因为我的exe文件是自己的au3文件编译的,用#AutoIt3Wrapper_Res_File_Add=winrarsc.bmp,位图,1223加进去的位图,用你的方法调用不成功。不知道是我临摹有误,还是这个方法,不适合这样添加进去的位图资源。

haijie1223 发表于 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吧谢谢

3mile 发表于 2011-6-13 19:20:20

不好意思,应该附上相关函数的.

haijie1223 发表于 2018-3-16 16:49:51

现在翻回来看当年的问题好幼稚,接贴吧

862228699 发表于 2018-5-17 09:43:05

发哥,问题解决了吗。。。{:face (411):}

haijie1223 发表于 2018-5-17 20:43:44

回复 10# 862228699


    当然解决了, 以前还比较菜,都是些菜鸟问题而已。

zxxputian2 发表于 2018-5-24 19:55:37

多谢楼主多谢了

zmdzhxj 发表于 2019-8-15 17:32:20

这个非常值得学习!
页: [1]
查看完整版本: 如何调用位图资源显示到gui上[已解决]