Remplace une image par une icône ou un curseur
#include <GuiImageList.au3>
_GUIImageList_ReplaceIcon ( $hWnd, $iIndex, $hIcon )
$hWnd | Handle de la liste d'images |
$iIndex | Index de l'image à remplacer. Si -1, la fonction ajoute l'image à la fin de la liste. |
$hIcon | Handle de l'icône ou du curseur qui contient le bitmap et le masque pour la nouvelle image |
Succès: | Retourne l'index de l'image. |
Échec: | Retourne -1. |
Parce que le système ne sauvegarde pas $hIcon vous pouvez le détruire après le retour de la fonction si l'icône ou le curseur a été créé par la fonction CreateIcon.
Vous n'avez pas besoin de détruire $hIcon si elle a été chargée par la fonction LoadIcon, le système libère automatiquement une ressource d'icône quand elle n'est plus nécessaire.
#include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <GuiListView.au3> #include <WinAPIIcons.au3> #include <WindowsConstants.au3> Example() Func Example() Local $idListview, $hImage Local $sWow64 = "" If @AutoItX64 Then $sWow64 = "\Wow6432Node" Local $sAutoItDir = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $sWow64 & "\AutoIt v3\AutoIt", "InstallDir") GUICreate("ImageList AddIcon", 490, 300) $idListview = GUICtrlCreateListView("", 2, 2, 484, 268, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT)) GUISetState(@SW_SHOW) ; Crée une liste d'images avec des images $hImage = _GUIImageList_Create(11, 11) AddIcon($hImage, $sAutoItDir & "\Icons\au3.ico") AddIcon($hImage, $sAutoItDir & "\Icons\au3script_v9.ico") AddIcon($hImage, $sAutoItDir & "\Icons\au3script_v10.ico") AddIcon($hImage, $sAutoItDir & "\Icons\au3script_v11.ico") _GUICtrlListView_SetImageList($idListview, $hImage, 1) ; Ajoute des colonnes _GUICtrlListView_AddColumn($idListview, "Column 1", 100, 0, 0) _GUICtrlListView_AddColumn($idListview, "Column 2", 100, 1, 1) _GUICtrlListView_AddColumn($idListview, "Column 3", 100, 2, 2) _GUICtrlListView_AddColumn($idListview, "Column 4", 100, 1, 3) _GUICtrlListView_AddColumn($idListview, "Column 5", 100) ; Boucle jusqu'à ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>Example ; C'est une manière longue d'ajouter une icône. Utilisez _GUIImageList_AddIcon à la place Func AddIcon($hWnd, $sFile, $iIndex = 0) Local $pIcon, $tIcon, $hIcon $tIcon = DllStructCreate("int Icon") _WinAPI_ExtractIconEx($sFile, $iIndex, 0, $pIcon, 1) $hIcon = DllStructGetData($tIcon, "Icon") _GUIImageList_ReplaceIcon($hWnd, -1, $hIcon) _WinAPI_DestroyIcon($hIcon) EndFunc ;==>AddIcon