分配一个图像列表到一个按钮控件
#include <GuiButton.au3>
_GUICtrlButton_SetImageList($hWnd, $hImage [, $nAlign = 0 [, $iLeft = 1 [, $iTop = 1 [, $iRight = 1 [, $iBottom = 1]]]]])
$hWnd | 控件的控件ID/句柄 |
$hImage | 图像列表句柄. 包含一个单图像用于所有状态或者下方状态列出的每个状态值的图像: 1 - 常规 2 - 激活 3 - 按下 4 - 禁用 5 - 默认 6 - 感应笔热点(仅平板电脑) |
$nAlign | [可选参数] 指定对齐方式,参数可能是下列值之一: 0 - 图像左对齐. 1 - 图像右对齐. 2 - 图像顶端对齐. 3 - 图像底部对齐. 4 - 图像居中对齐. |
$iLeft | [可选参数] 图标的左页边距 |
$iTop | [可选参数] 图标的顶页边距 |
$iRight | [可选参数] 图标的右页边距 |
$iBottom | [可选参数] 图标的底页边距 |
成功: | True |
失败: | False |
在MSDN中搜索
#include <GUIConstantsEx.au3>
#include <GuiButton.au3>
#include <GuiImageList.au3>
_Main()
Func _Main()
Local $hImage, $y = 70, $iIcon = 125, $btn[6], $rdo[6], $chk[6], $hImageSmall
GUICreate("Buttons", 510, 400)
GUISetState()
$hImage = _GUIImageList_Create(32, 32, 5, 3, 6)
For $x = 6 To 11
_GUIImageList_AddIcon($hImage, "shell32.dll", $x, True)
Next
$hImageSmall = _GUIImageList_Create(16, 16, 5, 3, 6)
For $x = 6 To 11
_GUIImageList_AddIcon($hImageSmall, "shell32.dll", $x)
Next
$btn[0] = GUICtrlCreateButton("Button1", 10, 10, 90, 50)
_GUICtrlButton_SetImageList($btn[0], $hImage)
$rdo[0] = GUICtrlCreateRadio("Radio Button1", 120, 10, 120, 25)
_GUICtrlButton_SetImageList($rdo[0], $hImageSmall)
$chk[0] = GUICtrlCreateCheckbox("Check Button1", 260, 10, 120, 25)
_GUICtrlButton_SetImageList($chk[0], $hImageSmall)
For $x = 1 To 5
$btn[$x] = GUICtrlCreateButton("Button" & $x + 1, 10, $y, 90, 50)
_GUICtrlButton_SetImageList($btn[$x], _GetImageListHandle("shell32.dll", $iIcon + $x, True), $x)
$rdo[$x] = GUICtrlCreateRadio("Radio Button" & $x + 1, 120, $y, 120, 25)
_GUICtrlButton_SetImageList($rdo[$x], _GetImageListHandle("shell32.dll", $iIcon + $x), $x)
$chk[$x] = GUICtrlCreateCheckbox("Check Button" & $x + 1, 260, $y, 120, 25)
_GUICtrlButton_SetImageList($chk[$x], _GetImageListHandle("shell32.dll", $iIcon + $x), $x)
$y += 60
Next
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Exit
EndFunc ;==>_Main
; 使用图像列表在按钮上设置一个图像并显示文本
Func _GetImageListHandle($sFile, $nIconID = 0, $fLarge = False)
Local $iSize = 16
If $fLarge 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, $fLarge)
EndIf
Return $hImage
EndFunc ;==>_GetImageListHandle