请教,有支持TIFF格式的GUICtrlCreatePic函数吗?[已解决]
本帖最后由 CHEARV 于 2010-10-2 19:55 编辑大家好,我想写一个显示图片的程序,我的图片全部是TIFF格式的,GUICtrlCreatePic不支持。请问,有其他好的办法显示TIFF格式的图片吗? #include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GDIPlus.au3>
GUICreate("", 377, 257, 192, 124)
_GUICtrlCreatePNG(GUICtrlCreatePic("", 5, 10, 363, 240), @ScriptDir & '\1.TIFF')
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _GUICtrlCreatePNG($Handle, $sImage)
If Not IsHWnd($Handle) Then $Handle = GUICtrlGetHandle($Handle)
_GDIPlus_Startup()
Local $hImages = _GDIPlus_BitmapCreateFromFile($sImage)
_WinAPI_SetWindowLong($Handle, -16, BitOR(_WinAPI_GetWindowLong($Handle, -16), Hex($SS_BITMAP)))
_WinAPI_DeleteObject(_SendMessage($Handle, 0x0172, 0, 0))
_SendMessage($Handle, 0x0172, 0, _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImages))
_GDIPlus_BitmapDispose($hImages)
_GDIPlus_Shutdown()
EndFunc 本帖最后由 CHEARV 于 2010-9-29 23:29 编辑
谢谢破帽遮颜 ,成功了。不过,我还是看不懂代码。 大概意思是通过子函数在内存当中转换成BMP格式再用来显示是吧。
再想请教一下,是不是可以这样理解。_GUICtrlCreatePNG ( 控件ID, 文件名 )的功能就相当于支持TIFF格式的 GUICtrlSetImage ( 控件ID, 文件名 )?
另外,我感觉他显示图片没有ACDSEE快, ACDSEE显示图片是一点就出来。而这里能感觉到闪烁一下,感觉就像一幅卷好的画瞬间从屏幕最上方放下来一样。这个速度能不能改进一下? 回复 2# 破帽遮颜
这种转换方法我还是第一次见,学习了 回复 2# 破帽遮颜
学习了~·
还是第一次见这样子整合的。 呵呵好东西啊正需要。。 加载PNg也能用在TITF,见识了 有创意,但如果图片很大,那不是效率很低啊
页:
[1]