找回密码  加入

AUTOIT CN

搜索
查看: 23504|回复: 52

[原创] ListView判断双击

[复制链接]
发表于 2009-3-31 08:33:25 | 显示全部楼层 |阅读模式
可能很多朋友都有相似的方法来判断左击、双击、右击事件,但仍然有很多朋友问起这个问题,所以稍微注释了一下、老调重弹的发一下判断双击相关代码,含判断是否选中了ListViewItem(行)的方法。

  1. #include <GUIConstantsEx.au3>
  2. #include <ListViewConstants.au3>
  3. #include <WindowsConstants.au3>
  4. #include <GUIListView.au3>

  5. $Form1 = GUICreate("Form1", 410, 310)
  6. GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

  7. $ListView1 = GUICtrlCreateListView("||", 8, 8, 400, 300)
  8. GUISetState(@SW_SHOW)
  9. For $I = 1 To 10
  10.         GUICtrlCreateListViewItem($I, $ListView1)
  11. Next

  12. Do
  13. Until GUIGetMsg() = $GUI_EVENT_CLOSE

  14. Func WM_NOTIFY($hWndGUI, $MsgID, $WParam, $LParam)

  15.         Local $tagNMHDR, $Event, $hWndFrom, $IDFrom
  16.         Local $tagNMHDR = DllStructCreate("int;int;int", $LParam)
  17.         If @error Then Return $GUI_RUNDEFMSG
  18.         $IDFrom = DllStructGetData($tagNMHDR, 2)
  19.         $Event = DllStructGetData($tagNMHDR, 3)
  20.         $tagNMHDR = 0
  21.         Switch $IDFrom;选择产生事件的控件
  22.                
  23.                 Case $ListView1

  24.                         Switch $Event; 选择产生的事件
  25.                                
  26.                                 Case $NM_CLICK ; 左击
  27. ;~                                         ...
  28.                                        
  29.                                 Case $NM_DBLCLK ; 双击
  30.                                         $Index = _GUICtrlListView_GetSelectedIndices($ListView1)
  31.                                         If Not StringLen($Index) Then; 这里用以判断是否选定了ListViewItem
  32.                                                 MsgBox(0, "", "未选定")
  33.                                                 Return
  34.                                         EndIf
  35.                                         MsgBox(0,0, _GUICtrlListView_GetItemText($ListView1, Number($Index), 0))
  36.                                        
  37.                                 Case $NM_RCLICK ; 右击
  38. ;~                                         ...
  39.                         EndSwitch
  40.                        
  41.         EndSwitch
  42.        
  43.         Return $GUI_RUNDEFMSG
  44. EndFunc   ;==>WM_NOTIFY
复制代码

[ 本帖最后由 漠北雪~狼 于 2009-3-31 08:34 编辑 ]
发表于 2009-3-31 09:00:07 | 显示全部楼层
顶一下再说
发表于 2009-4-1 19:31:46 | 显示全部楼层
谢谢提供源码,下来学习下。
发表于 2009-4-1 21:33:02 | 显示全部楼层
谢谢.
发表于 2009-4-2 03:57:03 | 显示全部楼层
谢谢啦            .
发表于 2009-5-16 16:27:49 | 显示全部楼层
做个记号  用的着的时候好找
发表于 2009-5-16 19:35:42 | 显示全部楼层
这个相当不错,已经用上了,呵呵。
发表于 2009-5-16 20:37:22 | 显示全部楼层
收藏了,多谢
发表于 2009-5-16 20:37:39 | 显示全部楼层
收藏了,多谢
发表于 2009-5-18 10:19:57 | 显示全部楼层
非常感谢
顶一下
发表于 2009-5-19 20:24:05 | 显示全部楼层
学习中 感谢
发表于 2009-8-22 11:16:44 | 显示全部楼层
谢谢斑竹!!!
发表于 2009-8-25 13:06:52 | 显示全部楼层
谢谢楼主,
发表于 2009-8-25 13:20:17 | 显示全部楼层
先做个标记
发表于 2009-8-27 14:16:31 | 显示全部楼层
本帖最后由 jycel 于 2009-8-27 16:22 编辑

如果要读取选中这一列后面其它项目中的数据该怎么读取呢?
~已经解决问题了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2021-5-17 19:03 , Processed in 0.156250 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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