函数参考


_WinAPI_ShellExtractIcon

提取指定文件中指定尺寸的图标.

#Include <WinAPIEx.au3>
_WinAPI_ShellExtractIcon ( $sIcon, $iIndex, $iWidth, $iHeight )

参数

$sIcon 路径和文件名.
$iIndex 图标的索引.
$iWidth 图标水平尺寸.
$iHeight 图标垂直尺寸.

返回值

成功: 返回提取图标的句柄.
失败: 返回 0,并设置@error标志为非 0 值.

注意/说明

如果文件中找不到指定尺寸的图标,函数将就近选择适当的图标,并变换到指定的尺寸.
 当您使用完图标,调用 _WinAPI_DestroyIcon() 函数销毁.

相关

详情参考

在MSDN中搜索


示例/演示


#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

Global Const $STM_SETIMAGE = 0x0172

Global $hForm, $Msg, $Button, $Icon, $hIcon, $Index = 0, $Total = _WinAPI_ExtractIconEx(@SystemDir & '\shell32.dll', -1, 0, 0, 0)

$hForm = GUICreate('MyGUI', 160, 160)
$Button = GUICtrlCreateButton('Next', 50, 130, 70, 23)
$Icon = GUICtrlCreateIcon(@SystemDir & '\shell32.dll', 0, 69, 54, 32, 32)
$hIcon = GUICtrlGetHandle(-1)
GUISetState()

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case -3
            ExitLoop
        Case $Button
            $Index += 1
            IF $Index > $Total - 1 Then
                $Index = 0
            EndIF
            _WinAPI_DestroyIcon(_SendMessage($hIcon, $STM_SETIMAGE, 1, _WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', $Index, 32, 32)))
    EndSwitch
WEnd