chzj589 发表于 2016-8-31 17:55:55

回复 15# imutraveler

应该可以,但是这样有何用途?修改WM_NOTIFY和WM_COMMAND
刚修改了WM_NOTIFY,双击ListView列表条目可编辑

cfanpc 发表于 2016-8-31 22:18:07

你们真是脑洞大开啊没有想不到啊

chzj589 发表于 2016-9-1 08:26:07

本帖最后由 chzj589 于 2016-9-1 08:28 编辑

回复chzj589


    嗯,看到了,只是我还是希望右键菜单是创建在Item上的,就是右键点击“以分组服务 ...
imutraveler 发表于 2016-8-31 17:10 http://www.autoitx.com/images/common/back.gif
要右键点击“以分组服务器列表”没有反映,修改WM_COMMAND加个判断就可以:
Func WM_COMMAND($hWnd, $msg, $WParam, $LParam)
        #forceref $hWnd, $Msg
        Local $nNotifyCode = BitShift($WParam, 16)
        Local $nID = BitAND($WParam, 0x0000FFFF)
        Local $hCtrl = $LParam
        Switch $nID
                Case $exit
                        Switch $nNotifyCode
                                Case 0
                                        Exit
                        EndSwitch
                Case $rclk
                        Switch $nNotifyCode
                                Case 0
                                        $Strn1 = "已分组服务器列表"
                                        $Strn2 = GUICtrlRead($TreeView, 1)
                                        $Strnspin1 = StringSplit($Strn2, "|")                                       
                                        If $Strn1 = $Strnspin1 Then
                                                MsgBox(48, '提示', '请选择要更新的条目', 1)

                                        Else
                                                MsgBox(0, "编辑", "确认要编辑分组!" & GUICtrlRead($TreeView, 1), 1)
                                                Form2()
                                        EndIf
                        EndSwitch
                Case $rclka
                        Switch $nNotifyCode
                                Case 0
                                        $Strn1 = "已分组服务器列表"
                                        $Strn2 = GUICtrlRead($TreeView, 1)
                                        $Strnspin1 = StringSplit($Strn2, "|")
                                        If $Strn1 = $Strnspin1 Then
                                                MsgBox(48, '提示', '请选择要删除的条目', 1)
                                        Else
                                                MsgBox(0, "删除", "确认要删除分组?" & GUICtrlRead($TreeView, 1))
                                        EndIf
                        EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

heroxianf 发表于 2016-9-1 13:13:43

这个要支持一下,以后用的着。

chamlien 发表于 2016-9-3 14:05:15

回帖收藏,至今没有用过treeview

heroxianf 发表于 2016-9-3 22:39:55

回复 20# chamlien


    目前用到的东西一般都是au3文件,都没做过界面。

imutraveler 发表于 2016-9-13 09:38:53

回复 18# chzj589


    非常感谢,这些天出差刚回来,我按照你的思路学习一下!有问题我再来问你!

imutraveler 发表于 2016-9-15 12:46:12

本帖最后由 imutraveler 于 2016-9-15 13:02 编辑

回复 18# chzj589


    兄弟,我自己研究了2天,还是有些问题。
    我有强迫症,总是希望ContextMenu能创建在GroupItem上,这样配合_GUICtrlTreeView_HitTest来判断鼠标是否在项目文字上,就能实现只有右键点击项目文字上才会弹出右键菜单!
    但是这样带来的问题就是 ,每个item弹出的右键菜单第一次点击“编辑分组”或“删除分组”会有响应,之后就不会有任何响应了,用msgbox观察了下,貌似是第二次开始返回的ID全变成0了!
    按照你的思路,把ContextMenu创建在TreeView上,点击事件好像是没啥问题,就是整个TreeView任意位置点击右键, 都出现菜单,这个数我不能接受的!

    不知道还有什么方法能研究下?麻烦了

    还有就是 WM_COMMAND里面,Local $nNotifyCode   和Local $nID   是在获取什么值?

chzj589 发表于 2016-9-15 13:00:47

回复 23# imutraveler
附件不能下载!!!

imutraveler 发表于 2016-9-15 13:02:36

本帖最后由 imutraveler 于 2016-9-15 13:04 编辑

回复 24# chzj589


    重新上传了!刚才 修改 文件 来着!不好意思

chzj589 发表于 2016-9-15 13:30:05

回复 23# imutraveler
如果只点击:GUICtrlCreateTreeViewItem("已分组服务器列表"项目,才显示右鍵: 编辑分组
这样可以吗?

imutraveler 发表于 2016-9-15 13:54:24

回复 26# chzj589


    我是希望,,点击 “测试分组01”…… “测试分组10”这些项目上才出现菜单,其他空白区域和“以分组服务器列表”上 不会出现菜单!

chzj589 发表于 2016-9-15 14:29:24

只能右击“以分组服务器列表”项目, 才出现右鍵菜单,
右击“测试分组01”…… “测试分组10”这些子项目不能出现右鍵菜单
右击TreeView框也不能出现右鍵菜单
以上可以实现

chzj589 发表于 2016-9-15 15:21:05

回复 27# imutraveler
全部用TreeView项目创建,就可实现

imutraveler 发表于 2016-9-16 10:10:36

回复 29# chzj589


    好的,麻烦提供下代码,我学习下!!谢谢了!
页: 1 [2] 3
查看完整版本: TreeView子项目上创建右键菜单问题?求助!(已解决)