Hallo,
ich habe mich noch so gut wie noch gar nicht mit GDI + beschäftigt, daher komme ich auch nicht ganz voran.
Ich habe einmal 2 Fragen :
1. Wie kann ich ein Bild in GDI + in einer bestimmten Größe laden, also z.B. soll sie in 222x133 angezeigt werden. Wie ein Bild geladen wird, habe ich hier schon einmal ( soll auch bei png´s funktionieren ) :
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
_GDIPlus_Startup()
$Form1 = GUICreate("Test", 271, 240, 192, 124)
$Label1 = GUICtrlCreateLabel("Pfad", 8, 8, 44, 17)
$Input1 = GUICtrlCreateInput("", 56, 8, 121, 21)
$Button1 = GUICtrlCreateButton("...", 184, 8, 75, 25)
$Pic1 = GUICtrlCreatePic("", 8, 48, 252, 180)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GDIPlus_Shutdown()
Exit
Case $Button1
$Pfad = FileOpenDialog("Bild auswählen","C:\","Alles (*.*)")
If Not @error Then DisplayImage($Pic1, $Pfad)
EndSwitch
WEnd
Func DisplayImage($id, $file)
Local Const $IMAGE_BITMAP = 0
Local Const $STM_SETIMAGE = 0x0172
Local $hImage = _GDIPlus_ImageLoadFromFile($file)
If @error Then Return SetError(1, 0, 0)
Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_WinAPI_DeleteObject(GUICtrlSendMsg($id, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBitmap))
_WinAPI_DeleteObject($hHBitmap)
EndFunc
Aber wie mache ich es nun, dass es in 222x133 geladen wird?
2. Gibt es eine Funktion wie ohne GDI + GuiCtrlSetImage ? Das Ganze soll auch bei png´s funktionieren.
Danke im voraus.
MfG , Julien