Ich würde das so machen:
AutoIt
...
_GDIPlus_Startup()
Global $msg
Global Const $hGUI = GUICreate("Example", 600, 400)
Global Const $idLogo = GUICtrlCreatePic("", 215, 20, 169, 68)
Global Const $idLogo2 = GUICtrlCreatePic("", 215, 150, 169, 68)
;original
Global Const $Bmp_Logo = _GDIPlus_BitmapCreateFromMemory(Merlin(), True)
_WinAPI_DeleteObject(GUICtrlSendMsg($idLogo, $STM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Logo))
;Größe verändert >>> so OK?
Global $Bmp_Logo1 = _GDIPlus_BitmapCreateFromMemory(Merlin()) ;wenn 2. Parameter = True, dann GDI Bild, ansonsten GDIPlus Bild
Global $iWidth = _GDIPlus_ImageGetWidth($Bmp_Logo1)
Global $iHeight = _GDIPlus_ImageGetHeight($Bmp_Logo1)
Global $hBitmap_Resized = _GDIPlus_ImageResize($Bmp_Logo1, 150, 150 * $iHeight / $iWidth) ;resize image
Global $Bmp_Logo2 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_Resized) ;convert GDI+ bitmap to GDI bitmap
_WinAPI_DeleteObject(GUICtrlSendMsg($idLogo2, $STM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Logo2))
_GDIPlus_BitmapDispose($Bmp_Logo1)
_GDIPlus_BitmapDispose($hBitmap_Resized)
_WinAPI_DeleteObject($Bmp_Logo)
_WinAPI_DeleteObject($Bmp_Logo2)
GUISetState()
While True
$msg = GUIGetMsg()
Switch $msg
Case $idLogo
MsgBox(0, "Information", "The picture has been clicked!")
Case $GUI_EVENT_CLOSE
_GDIPlus_Shutdown()
GUIDelete($hGUI)
Exit
EndSwitch
WEnd
...
Alles anzeigen