找回密码  加入

AUTOIT CN

搜索
查看: 585|回复: 3

[网络通信] 获取listview项目文本(已解决)

[复制链接]
发表于 2018-11-27 13:43:15 | 显示全部楼层 |阅读模式
本帖最后由 xyhqqaa 于 2018-11-27 13:54 编辑

  
求助大佬们,想法其实是点击图标后运行对应的操作。目前初步的想法,是获取图标对应的文本。但是操作过程中发现,使用_GUICtrlListView_GetSelectedIndices($mainListView)可以正常获取图标索引,
_GUICtrlListView_GetItemText($mainListView, 3),使用这个可以获取指定索引的文本。
但是将两者嵌套, _GUICtrlListView_GetItemText($mainListView, _GUICtrlListView_GetSelectedIndices($mainListView))却无法获取文本。。。。
是思路错了。还是参数用错了。。。求大佬指教



  1. #include <GUIConstantsEx.au3>
  2. #include <GuiStatusBar.au3>
  3. #include <ListViewConstants.au3>
  4. #include <TreeViewConstants.au3>
  5. #include <WindowsConstants.au3>
  6. #include <GuiImageList.au3>
  7. #include <GuiListView.au3>
  8. #include <GuiTreeView.au3>



  9. ;_loginform() ;登录

  10. Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)

  11. $Form = GUICreate("Form12", 683, 590, 292, 151)
  12. $MenuItem1 = GUICtrlCreateMenu("MenuItem1")
  13. $MenuItem6 = GUICtrlCreateMenuItem("MenuItem6", $MenuItem1)
  14. $MenuItem7 = GUICtrlCreateMenuItem("MenuItem7", $MenuItem1)
  15. $MenuItem8 = GUICtrlCreateMenuItem("MenuItem8", $MenuItem1)
  16. $MenuItem2 = GUICtrlCreateMenu("MenuItem2")
  17. $MenuItem3 = GUICtrlCreateMenu("MenuItem3")
  18. $MenuItem5 = GUICtrlCreateMenu("MenuItem5")
  19. $MenuItem4 = GUICtrlCreateMenu("MenuItem4")

  20. $TreeView1 = GUICtrlCreateTreeView(0, 0, 161, 545)
  21. $TreeView1_1 = GUICtrlCreateTreeViewItem("1", $TreeView1)
  22. $TreeView1_11 = GUICtrlCreateTreeViewItem("测试", $TreeView1_1)
  23. $TreeView1_12 = GUICtrlCreateTreeViewItem("测试", $TreeView1_1)
  24. $TreeView1_13 = GUICtrlCreateTreeViewItem("测试", $TreeView1_1)
  25. $TreeView1_14 = GUICtrlCreateTreeViewItem("测试", $TreeView1_1)
  26. GUICtrlSetState($TreeView1_1, $GUI_EXPAND) ;默认展开
  27. $TreeView1_2 = GUICtrlCreateTreeViewItem("2", $TreeView1)
  28. $TreeView1_21 = GUICtrlCreateTreeViewItem("测试", $TreeView1_2)
  29. $TreeView1_22 = GUICtrlCreateTreeViewItem("测试", $TreeView1_2)
  30. $TreeView1_23 = GUICtrlCreateTreeViewItem("测试", $TreeView1_2)
  31. $TreeView1_24 = GUICtrlCreateTreeViewItem("测试", $TreeView1_2)
  32. GUICtrlSetState($TreeView1_2, $GUI_EXPAND) ;默认展开
  33. $TreeView1_3 = GUICtrlCreateTreeViewItem("3", $TreeView1)
  34. $TreeView1_31 = GUICtrlCreateTreeViewItem("测试", $TreeView1_3)
  35. $TreeView1_32 = GUICtrlCreateTreeViewItem("测试", $TreeView1_3)
  36. $TreeView1_33 = GUICtrlCreateTreeViewItem("测试", $TreeView1_3)
  37. $TreeView1_34 = GUICtrlCreateTreeViewItem("测试", $TreeView1_3)
  38. GUICtrlSetState($TreeView1_3, $GUI_EXPAND) ;默认展开
  39. $TreeView1_4 = GUICtrlCreateTreeViewItem("设置", $TreeView1)
  40. $TreeView1_41 = GUICtrlCreateTreeViewItem("界面设置", $TreeView1_4)
  41. $TreeView1_42 = GUICtrlCreateTreeViewItem("账户管理", $TreeView1_4)
  42. $TreeView1_43 = GUICtrlCreateTreeViewItem("测试", $TreeView1_4)
  43. $TreeView1_44 = GUICtrlCreateTreeViewItem("关于", $TreeView1_4)
  44. GUICtrlSetState($TreeView1_4, $GUI_EXPAND) ;默认展开
  45. _GUICtrlTreeView_SetIcon($TreeView1, $TreeView1_4, "shell32.dll", 3)

  46. $mainListView = GUICtrlCreateListView("", 168, 0, 514, 550)
  47. GUICtrlSetStyle($mainListView, $WS_BORDER + $LVS_ICON) ;图标视图模式
  48. $mainImage = _GUIImageList_Create(32, 32, 5, 3, 6)
  49. _GUIImageList_AddIcon($mainImage, 'icon.dll', 0, True)
  50. _GUIImageList_AddIcon($mainImage, 'icon.dll', 1, True)
  51. _GUIImageList_AddIcon($mainImage, "icon.dll", 2, True)
  52. _GUIImageList_AddIcon($mainImage, 'icon.dll', 4, True)
  53. _GUIImageList_AddIcon($mainImage, 'icon.dll', 5, True)

  54. _GUICtrlListView_SetImageList($mainListView, $mainImage, 0)

  55. _GUICtrlListView_AddItem($mainListView, "测试1", 0)
  56. _GUICtrlListView_AddItem($mainListView, "测试2", 1)
  57. _GUICtrlListView_AddItem($mainListView, "测试3", 2)
  58. _GUICtrlListView_AddItem($mainListView, "测试4", 3)
  59. _GUICtrlListView_AddItem($mainListView, "测试5", 4)

  60. $StatusBar1 = _GUICtrlStatusBar_Create($Form)

  61. GUISetState(@SW_SHOW)
  62. GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

  63. While 1
  64.         $nMsg = GUIGetMsg()
  65.         Switch $nMsg
  66.                 Case $GUI_EVENT_CLOSE
  67.                         Exit
  68.                 Case $TreeView1_1
  69.                         
  70.                 Case $TreeView1_11
  71.                         _GUICtrlListView_DeleteAllItems($mainListView)
  72.                         
  73.                         
  74.                 Case $TreeView1_41 ;界面设置
  75.                         _GUICtrlListView_DeleteAllItems($mainListView)
  76.                         Visualsettings()
  77.                         
  78.                         
  79.         EndSwitch
  80. WEnd


  81. Func Visualsettings() ;界面设置
  82.         $mainImage = _GUIImageList_Create(48, 48, 5, 3, 6)
  83.         _GUIImageList_AddIcon($mainImage, 'icon.dll', 1, True)
  84.         _GUIImageList_AddIcon($mainImage, 'icon.dll', 2, True)
  85.         _GUIImageList_AddIcon($mainImage, "icon.dll", 3, True)
  86.         _GUIImageList_AddIcon($mainImage, 'icon.dll', 4, True)
  87.         _GUIImageList_AddIcon($mainImage, 'icon.dll', 5, True)
  88.         _GUICtrlListView_SetImageList($mainListView, $mainImage, 0)
  89.         _GUICtrlListView_AddItem($mainListView, "1", 0)
  90.         _GUICtrlListView_AddItem($mainListView, "2", 1)
  91.         _GUICtrlListView_AddItem($mainListView, "3", 2)
  92.         _GUICtrlListView_AddItem($mainListView, "4", 3)
  93.         _GUICtrlListView_AddItem($mainListView, "5", 4)

  94.         ;_GUICtrlListView_SetItemPosition($ListView1, 0, 50, 100)
  95.         ;_GUICtrlListView_SetItemPosition($ListView1, 1, 140, 100)
  96.         ;_GUICtrlListView_SetItemPosition($ListView1, 2, 230, 100)
  97.         ;_GUICtrlListView_SetItemPosition($ListView1, 3, 320, 100)
  98.         ;_GUICtrlListView_SetItemPosition($ListView1, 4, 410, 100)
  99.         ;_GUICtrlListView_SetItemPosition($ListView1, 5, 50, 200)

  100. EndFunc   ;==>Visualsettings




  101. Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
  102.         Local $tNMHDR, $iCode, $hWndFrom, $tNMTOOLBAR, $iItem
  103.         Local $hListView = GUICtrlGetHandle($mainListView)
  104.         $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
  105.         $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
  106.         $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
  107.         $iCode = DllStructGetData($tNMHDR, "Code")
  108.         $tNMTOOLBAR = DllStructCreate($tagNMTOOLBAR, $ilParam)
  109.         $iItem = DllStructGetData($tNMTOOLBAR, "iItem")
  110.         Switch $hWndFrom
  111.                 Case $hListView ;这里改成你的listview的ID
  112.                         Switch $iCode
  113.                                 Case $NM_DBLCLK ;双击
  114.                                         $Index = _GUICtrlListView_GetSelectedIndices($mainListView)
  115.                                         If Not StringLen($Index) Then ; 判定是否选定listview
  116.                                                 MsgBox(0, "", "未选定")
  117.                                         Else
  118.                                                 MsgBox("", "", _GUICtrlListView_GetSelectedIndices($mainListView)) ;获取索引
  119.                                                 MsgBox("", "", _GUICtrlListView_GetItemText($mainListView, 3)) ;获取项目文本
  120.                                                 
  121.                                                 MsgBox("", "", _GUICtrlListView_GetItemText($mainListView, _GUICtrlListView_GetSelectedIndices($mainListView))) ;获取项目文本
  122.                                         EndIf
  123.                                 Case $NM_RCLICK ; 右擊
  124.                                        
  125.                         EndSwitch
  126.         EndSwitch
  127.         Return $GUI_RUNDEFMSG
  128. EndFunc   ;==>WM_NOTIFY


复制代码






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
 楼主| 发表于 2018-11-27 13:54:41 | 显示全部楼层
找到了~~~改成Number(_GUICtrlListView_GetSelectedIndices($mainListView))) 即可获取文本- -!!!
发表于 2018-12-17 12:13:37 | 显示全部楼层
學習學習.學習學習....
发表于 2018-12-22 19:43:14 | 显示全部楼层
不错,学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2019-5-20 03:52 , Processed in 0.046875 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表