Funktionreferenz


_WinAPI_CreateIconFromResourceEx

Beschreibung anzeigen in

Erzeugt ein Icon oder einen Mauszeiger von den Ressourcenbits welche das Icon beschreiben.

#include <WinAPIIcons.au3>
_WinAPI_CreateIconFromResourceEx ( $pData, $iSize [, $bIcon = True [, $iXDesiredPixels = 0 [, $iYDesiredPixels = 0 [, $iFlags = 0]]]] )

Parameter

$pData Die Icon- oder Mauszeigerressourcenbits. Diese Bits werden üblicherweise durch Aufrufe der _WinAPI_LookupIconIdFromDirectoryEx() und _WinAPI_LoadResource() geladen.
$iSize Die Größe in Bytes der Bitmenge auf welche der $pData Parameter zeigt.
$bIcon [optional] Gibt an, ob ein Icon oder ein Mauszeiger erzeugt werden soll. Gültige Werte sind:
    True - Ein Icon soll erzeugt werden (Standard).
    False - Ein Mauszeiger soll erzeugt werden.
$iXDesiredPixels [optional] Die gewünschte Breite in Pixeln des Icons oder Mauszeigers. Wenn dieser Parameter 0 ist (Standard), so wird die Funktion den Metrikwert des Systems nutzen um die Breite zu setzen.
$iYDesiredPixels [optional] Die gewünschte Höhe in Pixeln des Icons oder Mauszeigers. Wenn dieser Parameter 0 ist (Standard), so wird die Funktion den Metrikwert des Systems nutzen um die Höhe zu setzen.
$iFlags [optional] Dieser Parameter kann einen oder mehrere der folgenden Werte annehmen.
    $LR_DEFAULTCOLOR (Standard)
    $LR_DEFAULTSIZE
    $LR_MONOCHROME
    $LR_SHARED

Rückgabewert

Erfolg: Das Handle des Icons oder Mauszeigers.
Fehler: 0. Es ist _WinAPI_GetLastError() aufzurufen um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Wenn die Arbeit mit dem Icon oder dem Mauszeiger abgeschlossen ist, so sollte man diesen mit der _WinAPI_DestroyIcon() Funktion zerstören.

Verwandte Funktionen

_WinAPI_DestroyIcon

Siehe auch

Suche nach CreateIconFromResourceEx in der MSDN Bibliothek.

Beispiel

#include <APIResConstants.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <StaticConstants.au3>
#include <WinAPIIcons.au3>
#include <WinAPIRes.au3>

; Load Resources.dll to memory
Local $hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & '\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE)
If Not $hInstance Then
    MsgBox(($MB_ICONERROR + $MB_SYSTEMMODAL), 'Error', @ScriptDir & '\Extras\Resources.dll not found.')
    Exit
EndIf

; Load RT_GROUP_ICON resource from Resources.dll library
Local $hResource = _WinAPI_FindResource($hInstance, $RT_GROUP_ICON, 1)
Local $hData = _WinAPI_LoadResource($hInstance, $hResource)
Local $pData = _WinAPI_LockResource($hData)

; Search an integer resource name for the icon that best fits the specified size (48x48)
Local $iIcon = _WinAPI_LookupIconIdFromDirectoryEx($pData, 1, 48, 48)

; Load RT_ICON resource from Resources.dll library
$hResource = _WinAPI_FindResource($hInstance, $RT_ICON, $iIcon)
Local $iSize = _WinAPI_SizeOfResource($hInstance, $hResource)
$hData = _WinAPI_LoadResource($hInstance, $hResource)
$pData = _WinAPI_LockResource($hData)

; Create icon from resource
Local $hIcon = _WinAPI_CreateIconFromResourceEx($pData, $iSize)

; Unload Resources.dll from memory
_WinAPI_FreeLibrary($hInstance)

; Create GUI
GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 128, 128)
GUICtrlCreateIcon('', 0, 40, 40, 48, 48)
GUICtrlSendMsg(-1, $STM_SETIMAGE, 1, $hIcon)
GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE