lynfr8 发表于 2009-6-2 15:07:18

先获取图片宽高再定义主窗体大小引发的问题

本帖最后由 lynfr8 于 2009-6-2 15:44 编辑

#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
Local $hGUI, $hWnd, $Pic1,$Pic2,$nMsg,$size ,$hImage,$Imageh,$Imagew
$Pic1=@ScriptDir & "\test1.jpg"
$Pic2=@ScriptDir & "\test2.jpg"
_Main()

$hGUI = GUICreate("AU3论坛", $Imagew+150, $Imageh+150, 302, 218)
$hWnd = WinGetHandle("AU3论坛")
GUICtrlCreatePic($Pic1, 0, 0,0,0)

GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

Func _Main()
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($Pic1)
$Imageh= _GDIPlus_ImageGetHeight($hImage)
$Imagew= _GDIPlus_ImageGetWidth($hImage)
_GDIPlus_ShutDown()
EndFunc 测试结果:
1.当GUICtrlCreatePic($Pic1, 0, 0,0,0)
和$hImage = _GDIPlus_ImageLoadFromFile($Pic1)
同时以$Pic1为导入图片,能获取图片宽$Imagew高$Imageh,但图片框无法显示图片
2.反之,任意一个定义为$Pic1,另一个定义为$Pic2,则可顺利导入显示

何解??

lynfr8 发表于 2009-6-2 15:43:50

原来是漏了一句_GDIPlus_BitmapDispose()

kn007 发表于 2009-6-4 01:50:58

嘿嘿,自问自答

lynfr8 发表于 2009-6-4 02:00:14

那个时侯研究了很久都找不出原因,只好发帖问问大家
不过我不是那种把问题丢到论坛上就歇着去的人
继续翻看手头的资料才在其他的一个例子发现了这个答案
所以,有时候答案往往是柳暗花明的,说不定再坚持一下就能自己找出答案了呢

kn007 发表于 2009-6-4 02:01:00

恩,精神可嘉,而且也是大家学习的榜样,特别是我?!~

hapi 发表于 2009-6-5 13:54:09

参与一下,不知道算不算灌水?

liyi-softs 发表于 2011-6-30 02:15:51

对我有大用了.......
页: [1]
查看完整版本: 先获取图片宽高再定义主窗体大小引发的问题