画像をアイコンまたはカーソルで置き換えます。
#Include <GuiImageList.au3>
_GUIImageList_ReplaceIcon($hWnd, $iIndex, $hIcon)
パラメータ
$hWnd | コントロールのハンドル |
$iIndex | 置き換える画像のインデックス。-1の場合、この関数は画像をリストの末尾に追加します。 |
$hIcon | 新しい画像のビットマップとマスクを格納したアイコンまたはカーソルのハンドル |
返し値
成功: | 画像のインデックス |
失敗: | -1 |
注意
アイコンまたはカーソルがCreateIcon関数によって作成されたものの場合、システムはhIconを保存しないのでこの関数が返ったあと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