aardio 文档

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

说明

treeview 控件部分初始化属性:

属性面板名称 属性字段名 可选值 默认值
模式 checkbox true,false false
显示复选框 checkbox true,false true
选中整行 fullRow true,false false
保持选定(取反) hideSel true,false true
启用连线 hasLines true,false true
启用根连接 linesAtRoot true,false true
启用按钮 hasButtons true,false true
隐藏提示 noToolTips true,false false
信息提示 infoTip true,false false
展开单节点 singleExpand true,false true
垂直滚动条 vscroll true,false false
水平滚动条 hscroll true,false false
允许编辑 editable true,false false

更多属性请参考 treeview 控件源码。 大多数初始化属性需要写在初始化参数表里才有效,例如:

winform.add(
treeview={cls="treeview";fullRow=1;hideSel=false;left=235;top=207;right=400;bottom=337;z=1}
)

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.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.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.visible #

当前控件窗口是否显示。
仅检查当前窗口的可见性样式(窗口 是否具有 _WS_VISIBLE 样式)。
不考虑父窗口是否可见,不考虑是否被其他窗口遮挡。
如果需要同时判断父窗口的可见性,应改用 win.isVisible 函数。

treeviewObject.visibleCount #

获取可见项总数

treeviewObject.width #

宽度

treeviewObject.wndproc #

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

treeviewObject 事件列表 #

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);
}

全局对象 成员列表 #

_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 格式