aardio 文档

win.ui.ctrl.treeview 库模块帮助文档

treeview 入门示例

win.ui.ctrl 成员列表 #

win.ui.ctrl.treeview() #

树形视图控件

返回对象:treeviewObject

treeviewObject 成员列表 #

treeviewObject._parentForm #

返回创建控件的容器窗口(win.form对象),所有窗口控件都拥有此只读属性。
对于使用窗体设计器创建的窗口,也就是返回设计时窗体容器。

即使子窗口移除子窗口样式、更改父子关系,或以 orphanWindow显示,
控件的 _parentForm 始终都不会改变

返回对象:winform

treeviewObject.addCtrl #

treeviewObject.addCtrl(  
    button={ cls="button";text="button";left=33;top=32;right=126;bottom=81;autoResize=false }    
)

treeviewObject.adjust #

treeviewObject.adjust = function( cx,cy,wParam ) {     
    /*窗口缩放时会自动触发此函数。  
cx 参数为窗口宽度,cy 参数为窗口高度,  
wParam 参数请参考 _WM_SIZE 消息参数说明,一般不用管。  

所有 win.form 创建的窗体和控件都支持此事件,  
重复赋值只会追加而不会覆盖此事件。  
一般不建议添加一个 wndproc 仅仅是为了处理  _WM_SIZE 消息,  
定义 adjust 事件是更好的选择。  

可主动调用此事件,省略参数时 cx,cy 参数默认设为窗口大小*/    
};

treeviewObject.bottom #

底部坐标

treeviewObject.capture #

是否捕获全局鼠标消息

treeviewObject.checkAll(节点句柄,是否选中) #

勾选或取消勾选所有下级子节点
并且更新所有上级父节点的勾选状态为:是否有任意的子节点是勾选状态
参数@1如果不指定则表示根节点(_TVI_ROOT)
参数@2不指定则默认赋值为true

treeviewObject.className #

运行时类名

treeviewObject.clear #

清空节点

treeviewObject.clear() #

清空所有节点

treeviewObject.clear(hItem) #

清空参数指定节点的所有子节点,
@hItem 参数指定节点句柄

treeviewObject.clientHeight #

控件窗口客户区宽度,只读属性。

treeviewObject.clientWidth #

控件窗口客户区宽度,只读属性。

treeviewObject.close() #

关闭控件窗口

treeviewObject.cls #

设计时类名

treeviewObject.collapse(hItem) #

折叠项
参数为节点句柄,省略则取当前选中项

treeviewObject.collapseReset(hItem) #

折叠并删除子项
参数为节点句柄,省略则取当前选中项

treeviewObject.count #

获取项目总数

treeviewObject.delItem(hItem节点句柄) #

删除节点
参数:节点句柄

treeviewObject.disabled #

是否禁用

treeviewObject.each(父节点句柄) #

for hChild in treeviewObject.each(){
    /*遍历父节点句柄的下级子级点  
不包含子节点的子节点*/
}

treeviewObject.editLabel(hItem) #

开始编辑项,参数为节点句柄

treeviewObject.endEdit() #

结束编辑并

treeviewObject.endEdit(true) #

结束编辑并取消

treeviewObject.ensureVisible(hItem) #

确保指定项目是可见的,通过展开父项目或滚动树型控件窗,
参数为节点句柄

treeviewObject.enum(回调函数,节点句柄) #

treeviewObject.enum(  
    function(hItem,parent){  
        /*枚举所有下级子节点,  
hItem为当前节点,parent为当前节点的父节点  
返回false停止枚举*/  
    }  
)

treeviewObject.enumParent(回调函数,节点句柄) #

treeviewObject.enumParent(  
    function(parent,child){  
        /*枚举所有上级父节点,  
parent为当前父节点,child为该节点的子节点  
child是上一次枚举到的父节点或者自身  
返回false停止枚举*/  
    }  
)

treeviewObject.expand(hItem) #

展开项
参数为节点句柄,省略则取当前选中项

treeviewObject.expandAll(hItem) #

展开指定项,并展开指定项的所有下级子级点
包含子级点的所有下级子节点都会被展开

treeviewObject.expandPartial(hItem) #

部分展开
参数为节点句柄,省略则取当前选中项

treeviewObject.expandTo(hItem) #

展开项以及其所有上级父节点
参数为节点句柄,省略则取当前选中项

treeviewObject.find(父节点,"子项标题",...) #

查找子项,展开上级父节点,
可以用多个文本参数多级向下查找子项,
父节点参数可省略,参数也可以是一个字符串数组

treeviewObject.findPath(父节点,"路径\子项") #

按路径查找子项,展开上级父节点
父节点参数可省略不写,默认为根节点,

treeviewObject.getChecked(hItem节点句柄) #

返回指定项的复选框是否勾选

treeviewObject.getChildItem(hItem节点句柄) #

返回子节点
参数:节点句柄

treeviewObject.getChildren(hItem) #

返回包含节点所有子节点句柄的数组,
@hItem 参数指定节点句柄

treeviewObject.getClientRect() #

控件客户区块位置(::RECT结构体)

返回对象:rectObject

treeviewObject.getEditControl() #

开始编辑时返回编辑控件,
此控件在完成编辑后会自动销毁,不必手动销毁
取消发送_WM_CANCELMODE消息即可

返回对象:editObject

treeviewObject.getEditHwnd() #

返回编辑文本框句柄;

treeviewObject.getFirst() #

返回树视图中的第一个节点
也即_TVI_ROOT的第一个子节点

treeviewObject.getFirstVisible() #

返回第一个可见节点
参数:节点句柄

treeviewObject.getFont() #

控件字体(::LOGFONT结构体)

返回对象:logfontObject

treeviewObject.getImageList( _TVSIL ) #

获取图像列表,
可选使用 LVSIL 前缀常量指定类型

treeviewObject.getItem() #

返回TVITEM对象,参数为TVITEM结构体或指定部分成员的table对象.
参数一也可以是空值,或树节点句柄
如果参数未指定节点句柄,则取当前选中节点

返回对象:tvitemObject

treeviewObject.getItemData(hItem) #

返回节点关联数据

treeviewObject.getItemPath(节点句柄) #

返回节点路径,以反斜杠分隔父子项目文本
省略节点参数则取当前选中节点

treeviewObject.getItemRect(hItem) #

返回句柄指定节点整行区块(RECT对象)
省略节点句柄则取当前选中节点

treeviewObject.getItemRect(hItem,true) #

返回句柄指定节点文本区块(RECT对象)
省略节点句柄则取当前选中节点

treeviewObject.getItemText(节点句柄,缓冲区长度) #

返回节点文本
省略节点参数则取当前选中节点
缓冲区长度参数可省略,默认为100

treeviewObject.getNextItem(hItem节点句柄) #

返回下一个节点,
第二个参数可选使用 TVNI 前缀的常量指定选项

treeviewObject.getNextSibling (hItem节点句柄) #

返回后面的兄弟节点
参数:节点句柄

treeviewObject.getNextVisible(hItem节点句柄) #

返回下一个可见节点
参数:节点句柄

treeviewObject.getNotifyCustomDraw() #

返回对象:NMTVCUSTOMDRAWObject

treeviewObject.getNotifyCustomDraw(code,ptr) #

NM_CUSTOMDRAW通知消息返回NMLVCUSTOMDRAW结构体

treeviewObject.getNotifyDispInfo() #

返回对象:TVDISPINFOObject

treeviewObject.getNotifyDispInfo(code,ptr) #

该函数限用于onnotify通知回调函数中
code参数为通知码,ptr参数为NMHDR指针
如果NMHDR指针指向TV_DISPINFO对象则返回该对象,否则返回空值

treeviewObject.getNotifyMessage() #

返回对象:NMTREEVIEWObject

treeviewObject.getNotifyMessage(code,ptr) #

该函数限用于onnotify通知回调函数中
code参数为通知码,ptr参数为NMHDR指针
如果code不是大于_TVN_FIRST,并小于_TVN_LAST的消息,
该函数返回空值,否则返回NMTREEVIEW对象.

treeviewObject.getParent() #

返回父窗口

treeviewObject.getParentItem(hItem节点句柄) #

返回父节点
参数:节点句柄

treeviewObject.getParentItemData(hItem) #

返回父节点关联数据

treeviewObject.getPos() #

返回相对坐标,宽,高
x,y,cx,cy=win.getPos(hwnd)

treeviewObject.getPrevSibling(hItem节点句柄) #

返回前面的兄弟节点
参数:节点句柄

treeviewObject.getPrevVisible(hItem节点句柄) #

返回上一个可见节点
参数:节点句柄

treeviewObject.getRect() #

控件区块位置(::RECT结构体)

treeviewObject.getRect(true) #

控件屏幕区块位置(::RECT结构体)

treeviewObject.getRoot() #

返回根节点( TVI_ROOT )
注意TVI_ROOT的子节点并没有父节点

treeviewObject.getSelection() #

返回当前选中节点

treeviewObject.height #

高度

treeviewObject.hide #

控件是否隐藏

treeviewObject.hitTest(x坐标,y坐标,是否屏幕坐标) #

该函数返回指定坐标的句柄,参数三可省略,默认为false.
如果不指定任何参数,则自动调用 win.getMessagePos() 获取消息坐标
第二个返回值指定测试结果,该值可以是一个或多个_TVHT_开头的常量组合

treeviewObject.hwnd #

控件句柄

treeviewObject.id #

控件ID

treeviewObject.imageList #

获取设置图像列个
支持 win.imageList 对象

treeviewObject.insertItem("插入文本",父项,前面的子项) #

参数 @1 可以是普通文本,
也可传入文本数组以循环插入多个节点。
可选用参数 @2 指定父节点句柄,可选用参数 @3 指定插入位置前面的节点句柄。
返回值为新节点句柄。

treeviewObject.insertItem(TVITEM,父项,前面的子项) #

参数 @1 可以是 TVITEM 结构体或指定部分成员的 table 对象。
参数 @1 可传入 TVITEM 数组以循环插入多个节点。
此函数可自动检测非空成员并自动设定 TVITEM 的 mask 字段。
可选用参数 @2 指定父节点句柄,可选用参数 @3 指定插入位置前面的节点句柄。
返回值为新节点句柄。

treeviewObject.insertItem(数据表,父项,前面的子项) #

参数 @1 可以使用 string.xml 对象或相同结构的表对象。

表可以指定要插入的单个节点或节点数组:

可选用参数 @2 指定父节点句柄,可选用参数 @3 指定插入位置前面的节点句柄。
返回值为新节点句柄。

treeviewObject.insertItem(数组,父项,前面的子项) #

传入数组则以数组元素作为参数 @1 循环调用 insertItem 函数,
数组元素可以是文本、TVITEM、表、数组等函数支持的对象。

treeviewObject.insertTable #

显示表对象中的名值对以及数组

treeviewObject.insertTable(tab,hParent) #

显示表对象中的名值对以及数组,
支持显示嵌套表,表中不应出现循环引用的成员,
可选用hParent指定父节点句柄

treeviewObject.invalidate(/*可选使用::RECT()对象指定客户区*/) #

使窗口绘图区无效

treeviewObject.invalidate(/*可选使用::RECT()对象指定客户区*/,0) #

使窗口绘图区无效
不刷新背景

treeviewObject.isExpanded(hItem) #

节点是否展开状态

treeviewObject.isExpandedOnce(hItem) #

节点是否至少展开过一次

treeviewObject.left #

左侧坐标

treeviewObject.modifyStyle(remove,add,swpFlags) #

修改窗口样式,所有参数都是可选参数,
@remove 用数值指定要移除的样式,可使用 WS 前缀的常量
@add 用数值指定要添加的样式,可使用 WS 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考 win.modifyStyle 函数源码

treeviewObject.modifyStyleEx(remove,add,swpFlags) #

修改窗口扩展样式,所有参数都是可选参数,
@remove 用数值指定要移除的样式,可使用 WS_EX 前缀的常量
@add 用数值指定要添加的样式,可使用 WS_EX 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考 win.modifyStyle 函数源码

treeviewObject.onClick #

treeviewObject.onClick = function(hItem,data){
    /*单击节点触发此事件,  
hItem 为当前节点句柄,data 为该节点绑定的自定义数据。  
可返回 true 阻止默认处理。  
注意在双击后控件自动获取焦点。*/ 
}

treeviewObject.onDestroy #

treeviewObject.onDestroy = function(){  
    /*窗口销毁前触发*/  
}

treeviewObject.onDoubleClick #

treeviewObject.onDoubleClick = function(hItem,data){
    /*双击节点触发此事件,  
hItem 为当前节点句柄,data 为该节点绑定的自定义数据。  
可返回 true 阻止默认处理*/
}

treeviewObject.onRightClick #

treeviewObject.onRightClick = function(hItem,data){
    /*右键点击节点触发此事件,  
hItem 为当前节点句柄,data 为该节点绑定的自定义数据*/   
}

treeviewObject.onSelChanged #

treeviewObject.onSelChanged = function(hItem,data,nmTreeView){
    /*改娈当前节点触发此事件,  
hItem 为当前节点句柄,data 为该节点绑定的自定义数据。  
nmTreeView 为 NMTREEVIEW 结构体参数*/
}

treeviewObject.onStateImageChanging #

treeviewObject.onStateImageChanging = function(hItem,checked,newImgIndex,oldImgIndex){

     /*状态图像(通常指复选框)变更触发此事件。  
hItem 为树视图的变更节点句柄。  
checked 为是否切换到勾选图像索引,也就是 2。  
newImgIndex,oldImgIndex 分别为新旧状态图像索引。  
注意勾选操作并不改变当前节点,默认勾选完成会弹回原来的选中节点。  
可调用 setSelected 函数选中当前操作的节点 */
     //选定节点
     winform.treeview.setSelected(hItem);
}

treeviewObject.oncommand #

treeviewObject.oncommand = function(id,event){  
    /*命令事件触发*/  
}

treeviewObject.onnotify #

treeviewObject.onnotify = function(id,code,ptr){  
    /*通知事件触发*/  
}

treeviewObject.orphanWindow(transparent,hwndBuddy) #

创建悬浮窗口,
悬浮窗口仍然显示在原来的位置,
悬浮窗口如影随形的跟随父窗口移动或改变大小,控件原来的固定边距等参数仍然有效
此控件不建议指定参数

treeviewObject.postMessage(msg,wParam,lParam) #

投递窗口消息到消息队列中
此函数用法请参考 ::User32.PostMessage

treeviewObject.redraw() #

刷新

treeviewObject.right #

右侧坐标

treeviewObject.selDropHiLite(hItem) #

选定节点
似拖放操作的目标项目高亮显示
参数指定节点句柄

treeviewObject.selFirstVisible(hItem) #

选定节点并设置到可视区第一行
参数指定节点句柄

treeviewObject.sendMessage(msg,wParam,lParam) #

发送窗口消息
此函数用法请参考 ::User32.SendMessage

treeviewObject.setChecked(节点句柄,是否选中) #

勾选指定项的复选框
参数@2,默认值是true

treeviewObject.setFocus() #

设置焦点

treeviewObject.setFont(指定字体) #

指定LOGFONT字体对象,或逻辑字体句柄

treeviewObject.setFont(混入字体属性) #

treeviewObject.setFont(point=10;name="宋体");

treeviewObject.setImageList( imageList,_TVSIL ) #

指定图像列表,
可选使用 LVSIL 前缀常量指定类型
treeview控件不负责销毁图像列表,用户应在控件不再使用图像列表后释放图像列表。

treeviewObject.setItem() #

更新项节点,参数为TVITEM结构体或指定部分成员的table对象
如果参数未指定节点句柄,则取当前选中节点
成功返回true;
此函数可自动检测非空成员并自动设定相应mask位

treeviewObject.setItemData(hItem,data) #

设置关联数据
data可以是任意对象
如果添加项时使用的参数是表而不是结构体,默认设置为关联数据

treeviewObject.setItemText(节点句柄,文本) #

设置节点文本
省略节点参数则取当前选中节点

treeviewObject.setParent(控件对象) #

改变父窗口

treeviewObject.setPos(x坐标,y坐标,宽,高,插入位置,参数) #

调整窗口位置或排序,所有参数可选
同时指定x,y坐标则移动位置
同时指定宽高则改变大小
指定插入位置(句柄或_HWND前缀常量)则调整Z序

treeviewObject.setRect(rc) #

设置控件区块位置(::RECT结构体)

treeviewObject.setRect(rc,true) #

设置控件屏幕区块位置(::RECT结构体)

treeviewObject.setRedraw(false) #

禁止重绘

treeviewObject.setRedraw(true) #

恢复重绘

treeviewObject.setSelected() #

不选定任何节点

treeviewObject.setSelected(hItem) #

选定节点
参数指定节点句柄

treeviewObject.show(true) #

显示控件

treeviewObject.text #

控件文本

treeviewObject.theme #

外观主题,例如
winform.button.theme = "Explorer"
winform.button.theme = false

treeviewObject.threadCallable() #

开启此控件的跨线程调用功能

treeviewObject.toggle(hItem) #

折叠的就展开,展开的就折叠
参数为节点句柄,省略则取当前选中项

treeviewObject.top #

顶部坐标

treeviewObject.translateCommand() #

允许转发转发子窗口的命令(_WM_COMMAND)与通知(_WM_NOTIFY)消息,
避免子窗口 oncommand,onnotify 等回调失效。
同时会处理子窗口的 _WM_CTLCOLORSTATIC 等消息,
以避免部分外观属性失效

treeviewObject.update() #

重绘invalidate函数指定的区块

treeviewObject.valid #

窗口是否有效,
窗口未关闭返回 true ,
窗口已关闭或正在关闭返回 false

treeviewObject.visibleCount #

获取可见项总数

treeviewObject.width #

宽度

treeviewObject.wndproc #

treeviewObject.wndproc = function(hwnd,message,wParam,lParam){  
    /*窗口消息回调,返回任意非null值阻止默认回调  
wndproc重复赋值时追加函数而不是覆盖之前的回调  
设为null添除所有消息回调函数  
wndproc也可以是一个表,键要为处理的消息,值为对应的消息回调函数*/     
}

全局对象 成员列表 #

_LPSTR_TEXTCALLBACK #

topointer(-1)

_TVI_FIRST #

treeview中表示同级节点中第一个节点的伪句柄

_TVI_LAST #

treeview中表示同级节点中最后一个节点的伪句柄

_TVI_ROOT #

treeview中表示根节点的伪句柄

_TVI_SORT #

topointer(-0x0FFFD)/*_TVI_SORT*/

NMTREEVIEWObject 成员列表 #

NMTREEVIEWObject.action #

0;

NMTREEVIEWObject.hdr #

返回对象:nmhdrObject

NMTREEVIEWObject.itemNew #

返回对象:tvitemObject

NMTREEVIEWObject.itemOld #

返回对象:tvitemObject

NMTREEVIEWObject.ptDrag #

返回对象:pointObject

NMTVCUSTOMDRAWObject 成员列表 #

NMTVCUSTOMDRAWObject.clrText #

文字颜色

NMTVCUSTOMDRAWObject.clrTextBk #

文字背景色

NMTVCUSTOMDRAWObject.iLevel #

嵌套级别

NMTVCUSTOMDRAWObject.nmcd.dwDrawStage #

绘图状态

NMTVCUSTOMDRAWObject.nmcd.dwItemSpec #

行序号

NMTVCUSTOMDRAWObject.nmcd.hdc #

设置句柄

NMTVCUSTOMDRAWObject.nmcd.hdr #

返回对象:nmhdrObject

NMTVCUSTOMDRAWObject.nmcd.lItemlParam #

lItemlParam

NMTVCUSTOMDRAWObject.nmcd.rc #

返回对象:rectObject

NMTVCUSTOMDRAWObject.nmcd.uItemState #

uItemState

NMTVCUSTOMDRAWObject.update() #

更新数据

TVDISPINFOObject 成员列表 #

TVDISPINFOObject.hdr #

返回对象:nmhdrObject

TVDISPINFOObject.item #

返回对象:tvitemObject

tvitemObject 成员列表 #

tvitemObject.cChildren #

子项目数目
如果为-1则向父窗体发送_TVN_GETDISPINFO通知消息

tvitemObject.cchTextMax #

取文本时可在此指定缓冲区长度

tvitemObject.hItem #

节点句柄

tvitemObject.iImage #

项目非选取状态下,要使用的image在图象列表中的索引

tvitemObject.iSelectedImage #

项目选取状态下,要使用的image在图象列表中的索引

tvitemObject.lParam #

数值

tvitemObject.mask #

可使用一个或多个TVIF_开头的常量组合
以指定当前结构体哪些成员有效

tvitemObject.state #

可使用一个或多上TVIS_开头的常量组合

tvitemObject.stateMask #

数值

tvitemObject.text #

文本

全局常量

_LPSTR_TEXTCALLBACK #

topointer(-1)

_TVI_FIRST #

treeview中表示同级节点中第一个节点的伪句柄

_TVI_LAST #

treeview中表示同级节点中最后一个节点的伪句柄

_TVI_ROOT #

treeview中表示根节点的伪句柄

_TVI_SORT #

topointer(-0x0FFFD)/*_TVI_SORT*/

自动完成常量

_I_CHILDRENCALLBACK=-1
_I_IMAGECALLBACK=-1
_TVE_COLLAPSE=1
_TVE_EXPAND=2
_TVE_TOGGLE=3
_TVGN_CARET=9
_TVGN_CHILD=4
_TVGN_DROPHILITE=8
_TVGN_FIRSTVISIBLE=5
_TVGN_LASTVISIBLE=0xA
_TVGN_NEXT=1
_TVGN_NEXTSELECTED=0xB
_TVGN_NEXTVISIBLE=6
_TVGN_PARENT=3
_TVGN_PREVIOUS=2
_TVGN_PREVIOUSVISIBLE=7
_TVGN_ROOT=0
_TVHT_ABOVE=0x100
_TVHT_BELOW=0x200
_TVHT_NOWHERE=1
_TVHT_ONITEM=0x46
_TVHT_ONITEMBUTTON=0x10
_TVHT_ONITEMICON=2
_TVHT_ONITEMINDENT=8
_TVHT_ONITEMLABEL=4
_TVHT_ONITEMRIGHT=0x20
_TVHT_ONITEMSTATEICON=0x40
_TVHT_TOLEFT=0x800
_TVHT_TORIGHT=0x400
_TVIF_CHILDREN=0x40
_TVIF_EXPANDEDIMAGE=0x200
_TVIF_HANDLE=0x10
_TVIF_IMAGE=2
_TVIF_INTEGRAL=0x80
_TVIF_PARAM=4
_TVIF_SELECTEDIMAGE=0x20
_TVIF_STATE=8
_TVIF_STATEEX=0x100
_TVIF_TEXT=1
_TVIS_BOLD=0x10
_TVIS_CUT=4
_TVIS_DROPHILITED=8
_TVIS_EXPANDED=0x20
_TVIS_EXPANDEDONCE=0x40
_TVIS_EXPANDPARTIAL=0x80
_TVIS_EX_ALL=2
_TVIS_EX_DISABLED=2
_TVIS_EX_FLAT=1
_TVIS_OVERLAYMASK=0xF00
_TVIS_SELECTED=2
_TVIS_STATEIMAGEMASK=0xF000
_TVIS_USERMASK=0xF000
_TVM_CREATEDRAGIMAGE=0x1112
_TVM_DELETEITEM=0x1101
_TVM_EDITLABELW=0x1141
_TVM_ENDEDITLABELNOW=0x1116
_TVM_ENSUREVISIBLE=0x1114
_TVM_GETCOUNT=0x1105
_TVM_GETIMAGELIST=0x1108
_TVM_GETINDENT=0x1106
_TVM_GETINSERTMARKCOLOR=0x1126
_TVM_GETISEARCHSTRINGA=0x1117
_TVM_GETISEARCHSTRINGW=0x1140
_TVM_GETITEMHEIGHT=0x111C
_TVM_GETITEMRECT=0x1104
_TVM_GETITEMSTATE=0x1127
_TVM_GETITEMW=0x113E
_TVM_GETLINECOLOR=0x1129
_TVM_GETNEXTITEM=0x110A
_TVM_GETSCROLLTIME=0x1122
_TVM_GETTOOLTIPS=0x1119
_TVM_GETVISIBLECOUNT=0x1110
_TVM_HITTEST=0x1111
_TVM_INSERTITEMW=0x1132
_TVM_SETIMAGELIST=0x1109
_TVM_SETINDENT=0x1107
_TVM_SETINSERTMARK=0x111A
_TVM_SETINSERTMARKCOLOR=0x1125
_TVM_SETITEMHEIGHT=0x111B
_TVM_SETITEMW=0x113F
_TVM_SETLINECOLOR=0x1128
_TVM_SETSCROLLTIME=0x1121
_TVM_SETTOOLTIPS=0x1118
_TVM_SORTCHILDREN=0x1113
_TVM_SORTCHILDRENCB=0x1115
_TVNRET_DEFAULT=0
_TVNRET_SKIPNEW=2
_TVNRET_SKIPOLD=1
_TVN_ASYNCDRAW=0xFFFFFE5C
_TVN_BEGINDRAGW=0xFFFFFE38
_TVN_BEGINLABELEDITW=0xFFFFFE35
_TVN_BEGINRDRAGW=0xFFFFFE37
_TVN_DELETEITEMW=0xFFFFFE36
_TVN_ENDLABELEDITW=0xFFFFFE34
_TVN_FIRST=0xFFFFFE70
_TVN_GETDISPINFOW=0xFFFFFE3C
_TVN_GETINFOTIPW=0xFFFFFE62
_TVN_ITEMCHANGEDW=0xFFFFFE5D
_TVN_ITEMCHANGINGW=0xFFFFFE5F
_TVN_ITEMEXPANDEDW=0xFFFFFE39
_TVN_ITEMEXPANDINGW=0xFFFFFE3A
_TVN_KEYDOWN=0xFFFFFE64
_TVN_LAST=0xFFFFFE0D
_TVN_SELCHANGEDW=0xFFFFFE3D
_TVN_SELCHANGINGW=0xFFFFFE3E
_TVN_SINGLEEXPAND=0xFFFFFE61
_TVSIL_NORMAL=0
_TVSIL_STATE=2
_TVSI_NOSINGLEEXPAND=0x8000
_TVS_DISABLEDRAGDROP=0x10
_TVS_EX_AUTOHSCROLL=0x20
_TVS_EX_DIMMEDCHECKBOXES=0x200
_TVS_EX_DOUBLEBUFFER=4
_TVS_EX_DRAWIMAGEASYNC=0x400
_TVS_EX_EXCLUSIONCHECKBOXES=0x100
_TVS_EX_FADEINOUTEXPANDOS=0x40
_TVS_EX_MULTISELECT=2
_TVS_EX_NOINDENTSTATE=8
_TVS_EX_PARTIALCHECKBOXES=0x80
_TVS_EX_RICHTOOLTIP=0x10
_TVS_NONEVENHEIGHT=0x4000
_TVS_RTLREADING=0x40
_TVS_SHOWSELALWAYS=0x20
_TVS_TRACKSELECT=0x200
_TV_FIRST=0x1100

Markdown 格式