| 1 | #include <Misc.au3>
|
|---|
| 2 | #include <GUIConstantsEx.au3>
|
|---|
| 3 | #include <GuiListView.au3>
|
|---|
| 4 | #include <WindowsConstants.au3>
|
|---|
| 5 |
|
|---|
| 6 | Local $hGUI, $hLV, $iIndex
|
|---|
| 7 | Local $fUnicode = False
|
|---|
| 8 | If _Singleton("TestLV", 1) Then $fUnicode = True
|
|---|
| 9 |
|
|---|
| 10 | If $fUnicode Then
|
|---|
| 11 | $hGUI = GUICreate("TestLV (Unicode)", 400, 400)
|
|---|
| 12 | Else
|
|---|
| 13 | $hGUI = GUICreate("TestLV (ASCII)", 400, 400)
|
|---|
| 14 | EndIf
|
|---|
| 15 | $hLV = _GUICtrlListView_Create($hGUI, "Header 1|Header 2|Header 3", 10, 10, 380, 380)
|
|---|
| 16 | _GUICtrlListView_SetExtendedListViewStyle($hLV, $LVS_EX_FULLROWSELECT)
|
|---|
| 17 | _GUICtrlListView_SetUnicodeFormat($hLV, $fUnicode)
|
|---|
| 18 |
|
|---|
| 19 | _GUICtrlListView_BeginUpdate($hLV)
|
|---|
| 20 | For $i = 0 To 9
|
|---|
| 21 | $iIndex = _GUICtrlListView_InsertItem($hLV, "Item " & $i*3+1)
|
|---|
| 22 | For $j = 1 To 2
|
|---|
| 23 | _GUICtrlListView_AddSubItem($hLV, $iIndex, "Item " & $i*3+$j+1, $j)
|
|---|
| 24 | Next
|
|---|
| 25 | Next
|
|---|
| 26 | _GUICtrlListView_EndUpdate($hLV)
|
|---|
| 27 | GUISetState()
|
|---|
| 28 | GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
|
|---|
| 29 |
|
|---|
| 30 | Do
|
|---|
| 31 | Until GUIGetMsg() = $GUI_EVENT_CLOSE
|
|---|
| 32 |
|
|---|
| 33 | _GUICtrlListView_Destroy($hLV)
|
|---|
| 34 | GUIDelete()
|
|---|
| 35 |
|
|---|
| 36 | Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
|
|---|
| 37 | Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
|
|---|
| 38 | Local $tInfo, $iIndex
|
|---|
| 39 |
|
|---|
| 40 | $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
|
|---|
| 41 | $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
|
|---|
| 42 | $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
|
|---|
| 43 | $iCode = DllStructGetData($tNMHDR, "Code")
|
|---|
| 44 | Switch $hWndFrom
|
|---|
| 45 | Case $hLV
|
|---|
| 46 | Switch $iCode
|
|---|
| 47 | Case $NM_CLICK
|
|---|
| 48 | $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
|
|---|
| 49 | $iIndex = DllStructGetData($tInfo, "Index")
|
|---|
| 50 |
|
|---|
| 51 | If $iIndex <> -1 Then _
|
|---|
| 52 | MsgBox(0x40, "Item Text", _GUICtrlListView_GetItemText($hLV, $iIndex))
|
|---|
| 53 | EndSwitch
|
|---|
| 54 | EndSwitch
|
|---|
| 55 | Return $GUI_RUNDEFMSG
|
|---|
| 56 | EndFunc
|
|---|