Hallo,
ich nehme ein großes jpg und will es als kleines Vorschaubild darstellen. Das funktioniert mit der folgenden Funktion bestens. Nun soll aber das Vorschaubild "verlinkt" werden, d.h. es sollte seine ControlID abgefragt werden um case-sensitiv bei einem Klick darauf (wie z.B. mit GUICtrlCreateButton) eingesetzt zu werden. Das geht aber nicht, weil _GDIPlus_GraphicsDrawImageRectRect kein Handle zurück gibt.
Hat jemand eine Idee, wie man das lösen kann?
Dank und Gruß
Thomas
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <ScreenCapture.au3>
Local $hHBmp = @ScriptDir & "\bildgross.jpg"
Local Const $iWidth = 100, $iHeight = 100 ; Soll-Vorschaugroesse
Local Const $iX = 10, $iY = 10 ; x und y Abstand
Local $hGUI = GUICreate("GDI+ example", 600, 600)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]_Bildvorschau($hHBmp)
[/autoit] [autoit][/autoit] [autoit]Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete($hGUI)
Func _Bildvorschau($hHBmp)
_GDIPlus_Startup() ;initialize GDI+
Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
Local $hBitmap = _GDIPlus_BitmapCreateFromFile($hHBmp)
Local $height = _GDIPlus_ImageGetHeight($hBitmap)
Local $width = _GDIPlus_ImageGetWidth($hBitmap)
_WinAPI_DeleteObject($hHBmp)
_GDIPlus_GraphicsDrawImageRectRect($hGraphics, $hBitmap, 0, 0, $width , $height, $iX, $iY, $iWidth, $iHeight, $hIA)
; hier sollte das Handle übergeben werden - was es nicht gibt...?
_GDIPlus_ImageAttributesDispose($hIA)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_Shutdown()
EndFunc