【已解决】怎么让GUICtrlCreatePic显示PNG图片??
本帖最后由 sunyu4506 于 2016-5-10 09:46 编辑怎么让GUICtrlCreatePic显示PNG图片?? GUICtrlCreatePic 貌似做不到。
仔细看帮助文档,这例子除图片路径外,其他原封不动从帮助文档复制过来的。
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>
Global $hGUI, $hImage, $hGraphic, $hImage1
; Create GUI
$hGUI = GUICreate("Show PNG", 250, 250)
; Load PNG image
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile("E:\Pictures\2016-04-29_172117.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
GUISetState()
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
; Draw PNG image
Func MY_WM_PAINT($hWnd, $msg, $wParam, $lParam)
#forceref $hWnd, $Msg, $wParam, $lParam
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
_WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_PAINT
好像没什么直接解决的办法,找了个别的办法先把图片转换为BMP再加载。 回复 3# sunyu4506
这样的话大图片效率不是很好。 https://www.autoitscript.com/forum/topic/92675-icons-udf/
1、下载这个UDF,#include到你的代码;
2、使用其中_SetImage函数设置png图片,形如_SetImage($Pic1, $sPng)。
页:
[1]