リストビューコントロールを作成します。
#Include <GuiListView.au3>
_GUICtrlListView_Create($hWnd, $sHeaderText, $iX, $iY[, $iWidth = 150[, $iHeight = 150[, $iStyle = 0x0000000D[, $iExStyle = 0x00000000[, $fCoInit = False]]]]])
パラメータ
$hWnd | 親ウィンドウまたはオーナーウィンドウのハンドル |
$sHeaderText | ヘッダーに表示されるテキスト。"|"で区切ります。 |
$iX | コントロールの水平位置 |
$iY | コントロールの垂直位置 |
$iWidth | [オプション]コントロールの幅 |
$iHeight | [オプション]コントロールの高さ |
$iStyle | [オプション]コントロールのスタイル: $LVS_ALIGNLEFT - アイコン表示、スモールアイコン表示時にアイテムは左揃えされます。 $LVS_ALIGNTOP - アイコン表示、スモールアイコン表示時にアイテムはコントロール上部に揃えられます。 $LVS_AUTOARRANGE - アイコン表示、スモールアイコン表示時にアイコンが自動整列します。 $LVS_EDITLABELS - アイテムテキストをその場で編集できます。 $LVS_ICON - アイコン表示を指定します。 $LVS_LIST - リスト表示を指定します。 $LVS_NOCOLUMNHEADER - レポート表示で列のヘッダーを表示しません。 $LVS_NOLABELWRAP - アイコン表示でアイテムテキストを1行で表示します。 $LVS_NOSCROLL - スクロールを無効にします。 $LVS_NOSORTHEADER - 列のヘッダーをボタンにしません。 $LVS_OWNERDATA - 仮想コントロールを指定します。 $LVS_OWNERDRAWFIXED - レポート表示でオーナーウィンドウがアイテム描画をおこなえます。 $LVS_REPORT - レポート表示を指定します。 $LVS_SHAREIMAGELISTS - 画像リストを削除しません。 $LVS_SHOWSELALWAYS - 選択設定がある際は常に表示します。 $LVS_SINGLESEL - 一度に1つのアイテムのみしか選択できなくします。 $LVS_SMALLICON - スモールアイコン表示を指定します。 $LVS_SORTASCENDING - アイテムインデックスを昇順にソートします。 $LVS_SORTDESCENDING - アイテムインデックスを降順にソートします。 |
デフォルト: $LVS_REPORT、$LVS_SINGLESEL、$LVS_SHOWSELALWAYS 強制 : $WS_CHILD、$WS_VISIBLE |
|
$iExStyle | [オプション]コントロールの拡張スタイル: $LVS_EX_BORDERSELECT - アイテムが選択された際にアイテムの枠の色が変わります。 $LVS_EX_CHECKBOXES - リストビューコントロールのアイテムのチェックボックスを有効にします。 $LVS_EX_DOUBLEBUFFER - ちらつきを抑えるためにダブルバッファで描画をおこないます。 $LVS_EX_FLATSB - リストビューの平らなスクロールバーを有効にします。 $LVS_EX_FULLROWSELECT - アイテムが選択された際にアイテムとその全てのサブアイテムをハイライトします。 $LVS_EX_GRIDLINES - アイテムとサブアイテムの周りにグリッド線を表示します。 $LVS_EX_HEADERDRAGDROP - ドラッグ&ドロップによる列の順序変更を有効にします。 $LVS_EX_INFOTIP - ツールチップ表示前に$LVN_GETINFOTIP通知メッセージが送信されます。 $LVS_EX_LABELTIP - 設定されていない場合、ラージアイコンモードでのみ部分的に非表示のラベルの展開をおこないます。 $LVS_EX_MULTIWORKAREAS - 1つ以上の作業領域が定義されるまでコントロールはアイコンの自動整列をおこないません。 $LVS_EX_ONECLICKACTIVATE - ユーザーがアイテムをクリックした際にコントロールは$LVN_ITEMACTIVATEメッセージを送信します。 $LVS_EX_REGIONAL - アイテムのアイコンとテキストのみを含むコントロール領域を設定します。 $LVS_EX_SIMPLESELECT - アイコン表示でコントロールの状態画像を右上に移動します。 $LVS_EX_SUBITEMIMAGES - サブアイテムへの画像表示を許可します。 $LVS_EX_TRACKSELECT - コントロールでのホットトラック選択を有効にします。 $LVS_EX_TWOCLICKACTIVATE - ユーザーがアイテムをダブルクリックした際にコントロールは$LVN_ITEMACTIVATEメッセージを送信します。 $LVS_EX_UNDERLINECOLD - アクティブ化されたホットでないアイテムのテキストに下線を表示します。 $LVS_EX_UNDERLINEHOT - アクティブ化されたホットアイテムのテキストに下線を表示します。 |
$fCoInit | [オプション]COMライブラリを使用するためにスレッドを呼ぶことで初期化します |
返し値
成功: | リストビューコントロールのハンドル |
失敗: | 0 |
注意
この関数は上級者、コントロール動作学習用です。
関連
_GUICtrlListView_Destroy, _GUICtrlListView_SetBkImage
例
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
$Debug_LV = False ; ListView関数に渡されるClassNameを調べる。動作を確認するにはTrueを設定し、他のコントロールのハンドルを使用
Global $hListView
_Main()
Func _Main()
Local $GUI, $hImage
$GUI = GUICreate("(UDF Created) ListView Create", 400, 300)
$hListView = _GUICtrlListView_Create($GUI, "", 2, 2, 394, 268)
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
; 画像をロード
$hImage = _GUIImageList_Create()
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x00FF00, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x0000FF, 16, 16))
_GUICtrlListView_SetImageList($hListView, $hImage, 1)
; 列を追加
_GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
_GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
_GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100)
; アイテムを追加
_GUICtrlListView_AddItem($hListView, "Row 1: Col 1", 0)
_GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 2", 1)
_GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 3", 2)
_GUICtrlListView_AddItem($hListView, "Row 2: Col 1", 1)
_GUICtrlListView_AddSubItem($hListView, 1, "Row 2: Col 2", 1)
_GUICtrlListView_AddItem($hListView, "Row 3: Col 1", 2)
; ユーザーが終了するまでループ
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
;~ Local $tBuffer
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
;~ Case $LVN_BEGINDRAG ; 左マウスボタンによるドラッグ&ドロップ操作を初期化中
;~ $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
;~ _DebugPrint("$LVN_BEGINDRAG" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
;~ ; 返し値なし
;~ Case $LVN_BEGINLABELEDIT ; アイテムのラベル編集を開始
;~ $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
;~ _DebugPrint("$LVN_BEGINLABELEDIT" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Mask:" & @TAB & DllStructGetData($tInfo, "Mask") & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->State:" & @TAB & DllStructGetData($tInfo, "State") & @LF & _
;~ "-->StateMask:" & @TAB & DllStructGetData($tInfo, "StateMask") & @LF & _
;~ "-->Image:" & @TAB & DllStructGetData($tInfo, "Image") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param") & @LF & _
;~ "-->Indent:" & @TAB & DllStructGetData($tInfo, "Indent") & @LF & _
;~ "-->GroupID:" & @TAB & DllStructGetData($tInfo, "GroupID") & @LF & _
;~ "-->Columns:" & @TAB & DllStructGetData($tInfo, "Columns") & @LF & _
;~ "-->pColumns:" & @TAB & DllStructGetData($tInfo, "pColumns"))
;~ Return False ; ユーザーにラベルの編集を許可
;~ ;Return True ; ユーザーのラベル編集を許可しない
;~ Case $LVN_BEGINRDRAG ; 右マウスボタンによるドラッグ&ドロップ操作を初期化中
;~ $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
;~ _DebugPrint("$LVN_BEGINRDRAG" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
;~ ; 返し値なし
;~ Case $LVN_BEGINSCROLL ; スクロール操作を開始 WinXP以降のOSのみ
;~ $tInfo = DllStructCreate($tagNMLVSCROLL, $ilParam)
;~ _DebugPrint("$LVN_BEGINSCROLL" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->DX:" & @TAB & DllStructGetData($tInfo, "DX") & @LF & _
;~ "-->DY:" & @TAB & DllStructGetData($tInfo, "DY"))
;~ ; 返し値なし
Case $LVN_COLUMNCLICK ; 列がクリックされた
$tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
_DebugPrint("$LVN_COLUMNCLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
; 返し値なし
;~ Case $LVN_DELETEALLITEMS ; コントロール内の全てのアイテムを削除中
;~ $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
;~ _DebugPrint("$LVN_DELETEALLITEMS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
;~ Return True ; 以降の$LVN_DELETEITEMメッセージを無視
;~ ;Return False ; 以降の$LVN_DELETEITEMメッセージを受け取る
;~ Case $LVN_DELETEITEM ; アイテムを削除中
;~ $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
;~ _DebugPrint("$LVN_DELETEITEM" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
;~ ; 返し値なし
;~ Case $LVN_ENDLABELEDIT ; アイテムのラベル編集を終了
;~ $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
;~ $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
;~ _DebugPrint("$LVN_ENDLABELEDIT" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Mask:" & @TAB & DllStructGetData($tInfo, "Mask") & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->State:" & @TAB & DllStructGetData($tInfo, "State") & @LF & _
;~ "-->StateMask:" & @TAB & DllStructGetData($tInfo, "StateMask") & @LF & _
;~ "-->Text:" & @TAB & DllStructGetData($tBuffer, "Text") & @LF & _
;~ "-->TextMax:" & @TAB & DllStructGetData($tInfo, "TextMax") & @LF & _
;~ "-->Image:" & @TAB & DllStructGetData($tInfo, "Image") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param") & @LF & _
;~ "-->Indent:" & @TAB & DllStructGetData($tInfo, "Indent") & @LF & _
;~ "-->GroupID:" & @TAB & DllStructGetData($tInfo, "GroupID") & @LF & _
;~ "-->Columns:" & @TAB & DllStructGetData($tInfo, "Columns") & @LF & _
;~ "-->pColumns:" & @TAB & DllStructGetData($tInfo, "pColumns"))
;~ ; Textが空だった場合、アイテムのラベルに編集テキストを設定するにはTrue、それを拒否するにはFalseを返す
;~ ; Textが空だった場合、返し値は無視される
;~ Return True
;~ Case $LVN_ENDSCROLL ; スクロール操作終了 WinXP以降のOSのみ
;~ $tInfo = DllStructCreate($tagNMLVSCROLL, $ilParam)
;~ _DebugPrint("$LVN_ENDSCROLL" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->DX:" & @TAB & DllStructGetData($tInfo, "DX") & @LF & _
;~ "-->DY:" & @TAB & DllStructGetData($tInfo, "DY"))
;~ ; 返し値なし
;~ Case $LVN_GETDISPINFO ; リストビューアイテムの表示、ソートに必要な情報を提供する
;~ $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
;~ $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
;~ _DebugPrint("$LVN_GETDISPINFO" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Mask:" & @TAB & DllStructGetData($tInfo, "Mask") & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->State:" & @TAB & DllStructGetData($tInfo, "State") & @LF & _
;~ "-->StateMask:" & @TAB & DllStructGetData($tInfo, "StateMask") & @LF & _
;~ "-->Text:" & @TAB & DllStructGetData($tBuffer, "Text") & @LF & _
;~ "-->TextMax:" & @TAB & DllStructGetData($tInfo, "TextMax") & @LF & _
;~ "-->Image:" & @TAB & DllStructGetData($tInfo, "Image") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param") & @LF & _
;~ "-->Indent:" & @TAB & DllStructGetData($tInfo, "Indent") & @LF & _
;~ "-->GroupID:" & @TAB & DllStructGetData($tInfo, "GroupID") & @LF & _
;~ "-->Columns:" & @TAB & DllStructGetData($tInfo, "Columns") & @LF & _
;~ "-->pColumns:" & @TAB & DllStructGetData($tInfo, "pColumns"))
;~ ; 返し値なし
;~ Case $LVN_GETINFOTIP ; $LVS_EX_INFOTIP拡張スタイルの設定されたラージアイコン表示のリストビューコントロールが送信
;~ $tInfo = DllStructCreate($tagNMLVGETINFOTIP, $ilParam)
;~ $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
;~ _DebugPrint("$LVN_GETINFOTIP" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Flags:" & @TAB & DllStructGetData($tInfo, "Flags") & @LF & _
;~ "-->Text:" & @TAB & DllStructGetData($tBuffer, "Text") & @LF & _
;~ "-->TextMax:" & @TAB & DllStructGetData($tInfo, "TextMax") & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam"))
;~ ; 返し値なし
;~ Case $LVN_HOTTRACK ; ユーザーがマウスをアイテム上に移動させた際にリストビューコントロールによって送信される
;~ $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
;~ _DebugPrint("$LVN_HOTTRACK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
;~ Return 0 ; リストビューが通常の選択追跡処理をおこなうことを許可
;~ ;Return 1 ; アイテムの選択解除
;~ Case $LVN_INSERTITEM ; 新しいアイテムが挿入された
;~ $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
;~ _DebugPrint("$LVN_INSERTITEM" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
;~ ; 返し値なし
;~ Case $LVN_ITEMACTIVATE ; ユーザーがアイテムをアクティブ化した際にリストビューコントロールによって送信
;~ $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
;~ _DebugPrint("$LVN_ITEMACTIVATE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
;~ "-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
;~ Return 0
;~ Case $LVN_ITEMCHANGED ; アイテムが変更された
;~ $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
;~ _DebugPrint("$LVN_ITEMCHANGED" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
;~ ; 返し値なし
;~ Case $LVN_ITEMCHANGING ; アイテムが変更された
;~ $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
;~ _DebugPrint("$LVN_ITEMCHANGING" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
;~ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
;~ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
;~ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
;~ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
;~ Return True ; 変更を防ぐ
;~ ;Return False ; 変更を許可
Case $LVN_KEYDOWN ; キーが押された
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
_DebugPrint("$LVN_KEYDOWN" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->VKey:" & @TAB & DllStructGetData($tInfo, "VKey") & @LF & _
"-->Flags:" & @TAB & DllStructGetData($tInfo, "Flags"))
; 返し値なし
;~ Case $LVN_MARQUEEBEGIN ; バウンディングボックス(マーキー)選択を開始
;~ _DebugPrint("$LVN_MARQUEEBEGIN" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode)
;~ Return 0 ; メッセージを受け取り
;~ ;Return 1 ; バウンディングボックス選択を終了
;~ Case $LVN_SETDISPINFO ; アイテムメンテナンス用情報を更新
;~ $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
;~ $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
;~ _DebugPrint("$LVN_SETDISPINFO" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode & @LF & _
;~ "-->Mask:" & @TAB & DllStructGetData($tInfo, "Mask") & @LF & _
;~ "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
;~ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
;~ "-->State:" & @TAB & DllStructGetData($tInfo, "State") & @LF & _
;~ "-->StateMask:" & @TAB & DllStructGetData($tInfo, "StateMask") & @LF & _
;~ "-->Text:" & @TAB & DllStructGetData($tBuffer, "Text") & @LF & _
;~ "-->TextMax:" & @TAB & DllStructGetData($tInfo, "TextMax") & @LF & _
;~ "-->Image:" & @TAB & DllStructGetData($tInfo, "Image") & @LF & _
;~ "-->Param:" & @TAB & DllStructGetData($tInfo, "Param") & @LF & _
;~ "-->Indent:" & @TAB & DllStructGetData($tInfo, "Indent") & @LF & _
;~ "-->GroupID:" & @TAB & DllStructGetData($tInfo, "GroupID") & @LF & _
;~ "-->Columns:" & @TAB & DllStructGetData($tInfo, "Columns") & @LF & _
;~ "-->pColumns:" & @TAB & DllStructGetData($tInfo, "pColumns"))
;~ ; 返し値なし
Case $NM_CLICK ; ユーザーが左マウスボタンでアイテムをクリックした際にリストビューコントロールによって送信される
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_DebugPrint("$NM_CLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
"-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
; 返し値なし
Case $NM_DBLCLK ; ユーザーが左マウスボタンでアイテムをダブルクリックした際にリストビューコントロールによって送信される
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_DebugPrint("$NM_DBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
"-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
; 返し値なし
;~ Case $NM_HOVER ; マウスがアイテム上に来た際にリストビューコントロールによって送信
;~ _DebugPrint("$NM_HOVER" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
;~ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
;~ "-->Code:" & @TAB & $iCode)
;~ Return 0 ; ホバリングを通常通り処理
;~ ;Return 1 ; ホバリングを処理しない
Case $NM_KILLFOCUS ; コントロールから入力フォーカスが外れた
_DebugPrint("$NM_KILLFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; 返し値なし
Case $NM_RCLICK ; ユーザーが右マウスボタンでアイテムをクリックした際にリストビューコントロールによって送信される
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_DebugPrint("$NM_RCLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
"-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
;Return 1 ; デフォルト処理を不許可
Return 0 ; デフォルト処理を許可
Case $NM_RDBLCLK ; ユーザーが右マウスボタンでアイテムをダブルクリックした際にリストビューコントロールによって送信される
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_DebugPrint("$NM_RDBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
"-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
; 返し値なし
Case $NM_RETURN ; コントロールに入力フォーカスが合っており、ユーザーがENTERキーを押した
_DebugPrint("$NM_RETURN" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; 返し値なし
Case $NM_SETFOCUS ; コントロールに入力フォーカスが合った
_DebugPrint("$NM_SETFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; 返し値なし
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _DebugPrint($s_text, $line = @ScriptLineNumber)
ConsoleWrite( _
"!===========================================================" & @LF & _
"+======================================================" & @LF & _
"-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
"+======================================================" & @LF)
EndFunc ;==>_DebugPrint