Function Reference

_GUIImageList_ReplaceIcon

画像をアイコンまたはカーソルで置き換えます。

#Include <GuiImageList.au3>
_GUIImageList_ReplaceIcon($hWnd, $iIndex, $hIcon)

 

パラメータ

$hWnd コントロールのハンドル
$iIndex 置き換える画像のインデックス。-1の場合、この関数は画像をリストの末尾に追加します。
$hIcon 新しい画像のビットマップとマスクを格納したアイコンまたはカーソルのハンドル

 

返し値

成功: 画像のインデックス
失敗: -1

 

注意

アイコンまたはカーソルがCreateIcon関数によって作成されたものの場合、システムはhIconを保存しないのでこの関数が返ったあとhIconを破棄することができます。
LoadIcon関数によってロードされたものの場合、hIconを破棄する必要はありません。不要になるとシステムは自動的にアイコンリソースを解放します。

 

関連

 


#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

_Main()

Func _Main()
    Local $listview, $hImage
    Local $Wow64 = ""
    If @AutoItX64 Then $Wow64 = "\Wow6432Node"
    Local $AutoItDir = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $Wow64 & "\AutoIt v3\AutoIt", "InstallDir")

    GUICreate("ImageList AddIcon", 410, 300)
    $listview = GUICtrlCreateListView("", 2, 2, 404, 268, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
    GUISetState()

    ; 画像を使ってイメージリストを作成
    $hImage = _GUIImageList_Create(11, 11)
    AddIcon($hImage, $AutoItDir & "\Icons\filetype1.ico")
    AddIcon($hImage, $AutoItDir & "\Icons\filetype2.ico")
    AddIcon($hImage, $AutoItDir & "\Icons\filetype3.ico")
    _GUICtrlListView_SetImageList($listview, $hImage, 1)

    ; 列を追加
    _GUICtrlListView_AddColumn($listview, "Column 1", 100, 0, 0)
    _GUICtrlListView_AddColumn($listview, "Column 2", 100, 1, 1)
    _GUICtrlListView_AddColumn($listview, "Column 3", 100, 2, 2)
    _GUICtrlListView_AddColumn($listview, "Column 4", 100)

    ; ユーザーが終了するまでループ
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main

; これはアイコンを追加する方法としては冗長。代わりに_GUIImageList_AddIconを使用すること
Func AddIcon($hWnd, $sFile, $iIndex = 0)
    Local $pIcon, $tIcon, $hIcon

    $tIcon = DllStructCreate("int Icon")
    $pIcon = DllStructGetPtr($tIcon)
    _WinAPI_ExtractIconEx($sFile, $iIndex, 0, $pIcon, 1)
    $hIcon = DllStructGetData($tIcon, "Icon")
    _GUIImageList_ReplaceIcon($hWnd, -1, $hIcon)
    _WinAPI_DestroyIcon($hIcon)
EndFunc   ;==>AddIcon