liupeng1990607 发表于 2013-1-11 10:56:07

treeview如何点击父项获取下面的子项即父项文本,如何点击子项获取父项即子项文本!!

treeview如何点击父项获取下面的子项即父项文本,如何点击子项获取父项即子项文本!!#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>
#include <StaticConstants.au3>
#include <GuiTreeView.au3>
#Include <GuiListView.au3>
GUICreate("My GUI with treeview",800,600, -1, -1)
$TreeView = GUICtrlCreateTreeView(124, 152, 417, 145);, BitOR($GUI_SS_DEFAULT_TREEVIEW,$TVS_CHECKBOXES))
$TreeView1_0 = GUICtrlCreateTreeViewItem("用户个人文档:"&@MyDocumentsDir, $TreeView)
$TreeView1_1 = GUICtrlCreateTreeViewItem("转移到:", $TreeView1_0)
GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')
GuiSetState(@SW_SHOW)
While 1
        $msg = GUIGetMsg()
       Select
               Case $msg = $GUI_EVENT_CLOSE
               Exit
          EndSelect
WEnd
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 $treeview
                        Switch $Event; 选择产生的事件
                              Case $TVN_SELCHANGEDW ; 左击
                                                                        ;MsgBox(0, '', GUICtrlRead(GUICtrlRead($TreeView1)))
                                                                                If GUICtrlRead($treeview) > 0 Then
                                       $nums =_GUICtrlTreeView_GetText($treeview, GUICtrlRead($treeview))
                                                                                                                                                                               
                                              MsgBox(0,"",$nums)
                                                                                  EndIf
                                                                                                                                       
       
                   EndSwitch
      EndSwitch
      Return $GUI_RUNDEFMSG
        EndFunc
       

netegg 发表于 2013-1-11 11:13:40

麻烦请用可以理解的中国话说明问题

liupeng1990607 发表于 2013-1-11 11:33:09

回复 2# netegg


不好意思,我的意思是想点击子项时可以获取其父项的文本 反之也一样

liupeng1990607 发表于 2013-1-11 11:35:14

回复netegg


不好意思,我的意思是想点击子项时可以获取其父项的文本 反之也一样
liupeng1990607 发表于 2013-1-11 11:33 http://www.autoitx.com/images/common/back.gif


    比如
   +AAA
         -123
         -456
我在点击AAA的时候 可以取出AAA,123,456
在点击 123的时候可以取出123,AAA
在点击 456的时候可以取出456,AAA

netegg 发表于 2013-1-11 11:53:31

本帖最后由 netegg 于 2013-1-11 11:57 编辑

点击父项情况:
_GUICtrlTreeView_GetSelection ---- 获取当前选定项
_GUICtrlTreeView_GetChildCount---获取子项数量
枚举
点击子项情况
_GUICtrlTreeView_GetParentHandle---获取父项句柄
_GUICtrlTreeView_GetSiblingCount----获取同级子项数量
枚举

另外,treeview比较麻烦,句柄和索引要倒来倒去的,注意下就行了

liupeng1990607 发表于 2013-1-11 12:37:30

回复 5# netegg


    谢谢 已解决了!!
页: [1]
查看完整版本: treeview如何点击父项获取下面的子项即父项文本,如何点击子项获取父项即子项文本!!