sky808 发表于 2010-2-27 00:38:40

如何双击某listbox中项目时触发事件

请问如何在已创建的list列表框中鼠标双击某项目触发事件呢?
麻烦高手回答,多谢!

pusofalse 发表于 2010-2-27 00:49:40

看_GUICtrlListBox_Create函数帮助。

sky808 发表于 2010-2-27 00:53:16

这里的函数都是英文的呢,看不懂.
而且create不是创建的吗?
麻烦楼上朋友指点。

kxing 发表于 2010-2-27 11:23:04

嘿嘿,没人回答呢

afan 发表于 2010-2-27 12:24:07

回复 3# sky808 #include <GUIListBox.au3>
#include <WindowsConstants.au3>

$hGUI = GUICreate("ListBox test", 400, 296)
$hListBox = _GUICtrlListBox_Create($hGUI, "", 2, 2, 396, 296, $LBS_EXTENDEDSEL)
GUISetState()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

_GUICtrlListBox_Dir($hListBox, @WindowsDir & "\win*.exe")
_GUICtrlListBox_AddFile($hListBox, @WindowsDir & "\Notepad.exe")

Do
Until GUIGetMsg() = -3

Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        #forceref $hWnd, $iMsg
        Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
        If Not IsHWnd($hListBox) Then $hWndListBox = GUICtrlGetHandle($hListBox)
        $hWndFrom = $ilParam
        $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
        $iCode = BitShift($iwParam, 16) ; Hi Word
        Switch $hWndFrom
                Case $hListBox, $hWndListBox
                        Switch $iCode
                                Case $LBN_DBLCLK
                                        $txt = _GUICtrlListBox_GetSelItemsText($hListBox)
                                        If $txt > 0 Then MsgBox(0, '高亮项目', $txt)
                        EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

sky808 发表于 2010-2-27 13:25:58

感谢感谢!!!!

lubb 发表于 2010-2-28 02:57:53

好东本,学习了。。

rence 发表于 2010-4-12 13:36:42

都是使用$WM_COMMAND的方式

auhj887 发表于 2010-4-12 17:44:34

:face (22): 奇怪。。。。

拉风晓晓 发表于 2010-4-19 09:08:36

谢谢,也解决了我的问题
页: [1]
查看完整版本: 如何双击某listbox中项目时触发事件