漠北雪~狼 发表于 2009-3-31 08:33:25

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 编辑 ]

xrbenbeba 发表于 2009-3-31 09:00:07

顶一下再说:face (33):

xulinghai 发表于 2009-4-1 19:31:46

谢谢提供源码,下来学习下。

itljl 发表于 2009-4-1 21:33:02

谢谢.:face (14):

ymjssg109 发表于 2009-4-2 03:57:03

谢谢啦            .

bbip 发表于 2009-5-16 16:27:49

做个记号用的着的时候好找

南一 发表于 2009-5-16 19:35:42

这个相当不错,已经用上了,呵呵。

botanycc 发表于 2009-5-16 20:37:22

收藏了,多谢

botanycc 发表于 2009-5-16 20:37:39

收藏了,多谢

seeking 发表于 2009-5-18 10:19:57

非常感谢
顶一下

yangyunyi 发表于 2009-5-19 20:24:05

学习中 感谢

zhch3022 发表于 2009-8-22 11:16:44

谢谢斑竹!!!:face (21):

clshuai 发表于 2009-8-25 13:06:52

谢谢楼主,

xiaoqiang 发表于 2009-8-25 13:20:17

先做个标记

jycel 发表于 2009-8-27 14:16:31

本帖最后由 jycel 于 2009-8-27 16:22 编辑

如果要读取选中这一列后面其它项目中的数据该怎么读取呢?
~已经解决问题了!
页: [1] 2 3 4
查看完整版本: ListView判断双击