| 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 |
|---|