Obtient un tableau qui décrit la liste d'image attribuée à un contrôle bouton
#include <GuiButton.au3>
_GUICtrlButton_GetImageList ( $hWnd )
$hWnd | ID/handle du contrôle |
Consultez BCM_GETIMAGELIST dans la librairie MSDN.
#include <GuiButton.au3> #include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <WindowsConstants.au3> Global $g_idMemo Example() Func Example() Local $hImage, $y = 70, $iIcon = 125, $a_idBtn[6], $aImageListInfo GUICreate("Buttons", 510, 400) $g_idMemo = GUICtrlCreateEdit("", 119, 10, 376, 374, $WS_VSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") GUISetState(@SW_SHOW) $hImage = _GUIImageList_Create(32, 32, 5, 3, 6) For $x = 6 To 11 _GUIImageList_AddIcon($hImage, "shell32.dll", $x, True) Next $a_idBtn[0] = GUICtrlCreateButton("Button1", 10, 10, 90, 50) _GUICtrlButton_SetImageList($a_idBtn[0], $hImage) For $x = 1 To 5 $a_idBtn[$x] = GUICtrlCreateButton("Button" & $x + 1, 10, $y, 90, 50) _GUICtrlButton_SetImageList($a_idBtn[$x], _GetImageListHandle("shell32.dll", $iIcon + $x, True), $x) $y += 60 Next For $x = 0 To 5 $aImageListInfo = _GUICtrlButton_GetImageList($a_idBtn[$x]) MemoWrite("Button" & $x + 1 & " Imagelist Info" & @CRLF & "--------------------------------") MemoWrite("Handle de la liste d'image...: " & $aImageListInfo[0]) MemoWrite("Marge gauche de l'icône......: " & $aImageListInfo[1]) MemoWrite("Marge supérieure de l'icône..: " & $aImageListInfo[2]) MemoWrite("Marge droite de l'icône......: " & $aImageListInfo[3]) MemoWrite("Marge inférieure de l'icône..: " & $aImageListInfo[4]) MemoWrite("Alignement: " & _ExplainAlignment($aImageListInfo[5])) MemoWrite("--------------------------------" & @CRLF) Next Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>Example ; Écrit une ligne dans le contrôle mémo Func MemoWrite($sMessage) GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite ; Utilisation de la liste d'image pour définir une image et un texte sur le bouton Func _GetImageListHandle($sFile, $nIconID = 0, $bLarge = False) Local $iSize = 16 If $bLarge Then $iSize = 32 Local $hImage = _GUIImageList_Create($iSize, $iSize, 5, 3) If StringUpper(StringMid($sFile, StringLen($sFile) - 2)) = "BMP" Then _GUIImageList_AddBitmap($hImage, $sFile) Else _GUIImageList_AddIcon($hImage, $sFile, $nIconID, $bLarge) EndIf Return $hImage EndFunc ;==>_GetImageListHandle Func _ExplainAlignment($iAlign) Switch $iAlign Case 0 Return "Image alignée sur la marge gauche." Case 1 Return "Image alignée sur la marge droite." Case 2 Return "Image alignée sur la marge supérieure." Case 3 Return "Image alignée sur la marge inférieure." Case 4 Return "Image centrée." EndSwitch EndFunc ;==>_ExplainAlignment