作者: majkinetor 最近更新时间: 20070508
TVX is extension for TreeView control to support moving, inserting and deleting. Once you call TVX function your tree view will become extended.
TVX( pTree, pSub, pOptions="", pUserData="" )
TVX_CopyItem(destc, destp, source)
TVX_CopyProc(iType, item)
TVX_Move(item, direction)
TVX_OnItemSelect(pItemId)
TVX_OnKeyPress(pKey)
TVX_Walk(root, label, ByRef event_type, ByRef event_param)
关于函数的参数和返回值, 请参阅其源码或 此文档.
This is not stdlib conform, because it uses global variables. Aloso it does have some global subroutines. These routines are g labels. The script must be included after global return, the auto-exection section.
There are some modifications around. Look at discussion page 2.
关于此函数(集)的更新细节和注意事项, 请参见 AutoHotkey 论坛: http://www.autohotkey.com/forum/viewtopic.php?t=19021
不存在
#NoEnv #SingleInstance force gosub CreateGui gosub FillTV TVX("MyTree", "Handler", "HasRoot CollapseOnMove ", "aTooltip") ;!!!!! Gui, Show, h410 w430 return Handler: if A_GuiEvent = S Tooltip % aTooltip%A_EventInfo%, 0, 0 return ;------------------------------------------------------------------------------- Save: TVX_Walk(root, "SaveHandler", Event, Item) return SaveHandler: TV_GetText(txt, Item) if Event = + { FileDelete, _out.txt FileAppend %txt%`n, _out.txt line := "|-" } if Event = E StringTrimRight, line, line, 2 if Event in I,M { FileAppend %line%%txt%, _out.txt FileAppend % " " aTooltip%item% "`n", _out.txt } if Event = M line .= "--" if Event = - Msgbox, TVX saved in _out.txt return ;--------------------------------------------------------------------------------- OnButton: ControlSend, SysTreeView321, {SHIFT down} ControlSend, SysTreeView321, {%A_GuiControl%} sleep 50 ControlSend, SysTreeView321, {SHIFT up} ; h := TVX_Move(TV_GetSelection(), A_GuiControl="Up" ? "u" : "d") ; TV_Modify(h, "Select") return Modify: if A_GuiControl=Delete ControlSend, SysTreeView321, {DELETE} if A_GuiControl=Insert ControlSend, SysTreeView321, {INSERT} if A_GuiControl=Insert Submenu { ControlSend, SysTreeView321, {SHIFT down} ControlSend, SysTreeView321, {INSERT} Sleep 50 ControlSend, SysTreeView321, {SHIFT up} } return ;--------------------------------------------------------------------------------- FillTV: root := TV_Add("Root", "" , "Expand") TV_Modify( root, "", A_Index " " root) loop, 10 { P := TV_Add("", root) TV_Modify( P, "", A_Index " " P) aTooltip%P% := "My Tooltip " A_Index } P2 := TV_Add("", P), aTooltip%P2% := "My Tooltip 2.1" TV_Modify( P2, "", "2.1 " P2) P2 := TV_Add("", P), aTooltip%P2% := "My Tooltip 2.2" TV_Modify( P2, "", "2.2 " P2) P3 := TV_Add("", P2), aTooltip%P3% := "My Tooltip 2.2.1" TV_Modify( P3, "", "2.2.1 " P3) P3 := TV_Add("", P2), aTooltip%P3% := "My Tooltip 2.2.2" TV_Modify( P3, "", "2.2.2 " P3) P3 := TV_Add("", P2), aTooltip%P3% := "My Tooltip 2.2.3" TV_Modify( P3, "", "2.2.3 " P3) return ;--------------------------------------------------------------------------------- CreateGui: Gui, Add, TreeView, h400 w300 vMyTree Gui, Add, Button, w100 gOnButton x+10 , Up Gui, Add, Button, wp gOnButton,Down Gui, Add, Button, y+20 wp gModify, Insert Gui, Add, Button, wp gModify, Insert Submenu Gui, Add, Button, y+20 wp gModify, Delete Gui, Add, Edit, y+50 wp vMyEdit gEdit, Gui, Add, Text, yp-30 wp, Change tooltip for selection Gui, Add, Button, y+150 w100 gSave, Save to file return ;--------------------------------------------------------------------------------- Edit: Gui, Submit, Nohide c := TV_GetSelection() aTooltip%c% := MyEdit return GuiClose: GuiEscape: ExitApp return ; #include TVX.ahk