ListView判断双击
可能很多朋友都有相似的方法来判断左击、双击、右击事件,但仍然有很多朋友问起这个问题,所以稍微注释了一下、老调重弹的发一下判断双击相关代码,含判断是否选中了ListViewItem(行)的方法。#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GUIListView.au3>
$Form1 = GUICreate("Form1", 410, 310)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
$ListView1 = GUICtrlCreateListView("||", 8, 8, 400, 300)
GUISetState(@SW_SHOW)
For $I = 1 To 10
GUICtrlCreateListViewItem($I, $ListView1)
Next
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
Func WM_NOTIFY($hWndGUI, $MsgID, $WParam, $LParam)
Local $tagNMHDR, $Event, $hWndFrom, $IDFrom
Local $tagNMHDR = DllStructCreate("int;int;int", $LParam)
If @error Then Return $GUI_RUNDEFMSG
$IDFrom = DllStructGetData($tagNMHDR, 2)
$Event = DllStructGetData($tagNMHDR, 3)
$tagNMHDR = 0
Switch $IDFrom;选择产生事件的控件
Case $ListView1
Switch $Event; 选择产生的事件
Case $NM_CLICK ; 左击
;~ ...
Case $NM_DBLCLK ; 双击
$Index = _GUICtrlListView_GetSelectedIndices($ListView1)
If Not StringLen($Index) Then; 这里用以判断是否选定了ListViewItem
MsgBox(0, "", "未选定")
Return
EndIf
MsgBox(0,0, _GUICtrlListView_GetItemText($ListView1, Number($Index), 0))
Case $NM_RCLICK ; 右击
;~ ...
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
[ 本帖最后由 漠北雪~狼 于 2009-3-31 08:34 编辑 ] 顶一下再说:face (33): 谢谢提供源码,下来学习下。 谢谢.:face (14): 谢谢啦 . 做个记号用的着的时候好找 这个相当不错,已经用上了,呵呵。 收藏了,多谢 收藏了,多谢 非常感谢
顶一下 学习中 感谢 谢谢斑竹!!!:face (21): 谢谢楼主, 先做个标记 本帖最后由 jycel 于 2009-8-27 16:22 编辑
如果要读取选中这一列后面其它项目中的数据该怎么读取呢?
~已经解决问题了!