Crée une icône ou un curseur à partir des bits d'une ressources décrivant l'icône
#include <WinAPIIcons.au3>
_WinAPI_CreateIconFromResourceEx ( $pData, $iSize [, $bIcon = True [, $iXDesiredPixels = 0 [, $iYDesiredPixels = 0 [, $iFlags = 0]]]] )
| $pData | Les bits de la ressource icône ou curseur. Ces bits sont généralement chargés par des appels aux fonctions _WinAPI_LookupIconIdFromDirectoryEx() et _WinAPI_LoadResource(). |
| $iSize | La taille, en octets, de l'ensemble des bits pointés par le paramètre $pData. |
| $bIcon | [optionnel] Indique si une icône ou un curseur doit être créé, les valeurs valides sont: True - Une icône doit être créé (par défaut). False - Un curseur doit être créé. |
| $iXDesiredPixels | [optionnel] La largeur désirée, en pixels, de l'icône ou du curseur. Si ce paramètre est zéro (par défaut), la fonction utilise la valeur métrique du système pour définir la largeur. |
| $iYDesiredPixels | [optionnel] La hauteur désirée, en pixels, de l'icône ou du curseur. Si ce paramètre est zéro ( par défaut ), la fonction utilise la valeur métrique du système pour définir la hauteur. |
| $iFlags | [optionnel] Ce paramètre peut prendre une ou plusieurs des valeurs suivantes: $LR_DEFAULTCOLOR (par défaut) $LR_DEFAULTSIZE $LR_MONOCHROME $LR_SHARED |
| Succès: | Retourne le handle de l'icône ou du curseur. |
| Échec: | Retourne 0, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur. |
Vous devez appeler _WinAPI_DestroyIcon() pour les icônes créées avec la fonction _WinAPI_CreateIconFromResourceEx().
Consultez CreateIconFromResourceEx dans la librairie MSDN.
#include <APIResConstants.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <StaticConstants.au3> #include <WinAPIIcons.au3> #include <WinAPIRes.au3> ; Charge resources.dll en mémoire Local $hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & '\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE) If Not $hInstance Then MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', @ScriptDir & '\Extras\Resources.dll n''existe pas.') Exit EndIf ; Charge la ressource RT_GROUP_ICON à partir de la bibliothèque Resources.dll Local $hResource = _WinAPI_FindResource($hInstance, $RT_GROUP_ICON, 1) Local $hData = _WinAPI_LoadResource($hInstance, $hResource) Local $pData = _WinAPI_LockResource($hData) ; Recherche un nom de ressource entier pour l'icône qui correspond le mieux à la taille spécifiée (48x48) Local $iIcon = _WinAPI_LookupIconIdFromDirectoryEx($pData, 1, 48, 48) ; Charge la ressource RT_ICON à partir de la bibliothèque Resources.dll $hResource = _WinAPI_FindResource($hInstance, $RT_ICON, $iIcon) Local $iSize = _WinAPI_SizeOfResource($hInstance, $hResource) $hData = _WinAPI_LoadResource($hInstance, $hResource) $pData = _WinAPI_LockResource($hData) ; Crée une icône à partir de la ressource Local $hIcon = _WinAPI_CreateIconFromResourceEx($pData, $iSize) ; Décharge Resources.dll de la mémoire _WinAPI_FreeLibrary($hInstance) ; Crée une 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