- Offizieller Beitrag
So langsam verzweifel ich!
Ich bin seit Stunden am rumprobieren, wie ich rauskriegen kann, ob eine Icondatei mehrere Icons beeinhaltet und wenn ja, wie ich diese per GDI+ laden kann.
Das Script hier funktioniert in soweit, dass es das Icon ausliest und anzeigt. Aber immer nur die kleinste Icongröße (16x16).
AutoIt
#include <GDIPlus.au3>
#include <WinAPI.au3>
#include <WinAPIConstants.au3>
_GDIPlus_Startup()
Global Const $STM_SETIMAGE = 0x0172
Global $hGui = GUICreate('Test', 320, 320)
Global $idPic = GUICtrlCreatePic('', 20, 20, 256, 256)
GUISetState()
Global $sImgFile = @ScriptDir & '\Everaldo-Crystal-Clear-App-display.ico'
Global $hBitmap = _GDIPlus_BitmapCreateFromFile($sImgFile) ; <- hier wird nur das kleine (16x16) Icon geladen
Global $hBMP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) ; HBitmap von der Bitmap erstellen
_WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hBMP)) ; und an das Pic-Control senden
_GDIPlus_BitmapDispose($hBitmap)
Do
Until GUIGetMsg() = -3
_GDIPlus_Shutdown()
Alles anzeigen
Ich hoffe ihr könnt mir helfen!
Im Anhang findet ihr das Script und das Icon (zum testen).