; 第一步 invoke CreateClass,parent,_x,_y,_w,_h ;初始控件的大小
;返回exe为一个结构,根据自己需要可以对控件重构事件,不需要就不要理它了,呵呵
;base struct
; hXTree dd ?
; hTv dd ?
; hList dd ?
; Header dd ?
; XTreeProc dd ?
; TvProc dd ?
; ListProc dd ?
; HeaderProc dd ?
; NewListProc dd ?
; NewTvProc dd ?
;base ends
;第二步 ;invoke InsertColumn,@lx,@pText ;添加Header列大小及名称
;invoke InsertColumn,50,CADD("PID")
;invoke InsertColumn,80,CADD("PPID")
;invoke InsertColumn,80,CADD("Handles")
;invoke InsertColumn,80,CADD("Threads")
;第三步 ;invoke TreeAddItem,offset ClassName ,0 ;添加Tree节点
;invoke TreeAddItem,offset ClassName ,edx
; eax 为一个双向链表数据结构
; ecx 返回总的行数
; edx 返回一个TREE节点句柄
;第四步 ;invoke ListAddItem,edx,1,offset ClassName;添加对应节点的多列数据
;invoke ListAddItem,edx,FALSE,1,offset ClassName
;tree节点句柄,LIST列,设置或获取一个节点,添加到LIST字符串
;invoke ListAddItem,edx,TRUE,2,offset ClassName
;至此收功完毕,以下是LIB类导出函数的使用说明(^_^以后再完善)
;初始创建并指定父窗口及大小
CreateClass PROTO :DWORD, :DWORD, DWORD,:DWORD
;初始一个Header。列宽度,列标题
InsertColumn PROTO :DWORD,:DWORD
;插入一个Tree节点。字符缓冲区指定一个节点名,父节点
TreeAddItem PROTO :DWORD,:DWORD
;设置或获得一个节点的数据项。 Tree节点句柄,(FLASE为添加一个数据项/TRUE为设置一个数据项),要获得或设置数据的列索引,字符缓冲区
ListAddItem PROTO :DWORD, :DWORD, DWORD,:DWORD
;获得附加额外的数据项(最多256个DWORD)每一个节点。节点句柄,返回缓冲区
GetData_L PROTO :DWORD, :DWORD
;删除所有节点
Deleteallitems PROTO
;枚举所有节点. Tree节点句柄,一个回调函数接受句柄
EnuemAllNodes PROTO :DWORD, :DWORD
;枚举节点。Tree节点句柄,搜索类型(TVGN_XXX),搜索方式(TVGN_NEXT/PREVIOUS)
;是否深度搜索(FALSE/TRUE),要搜索的节点句柄,一个回调函数接受句柄
EnuemChildNodes PROTO :DWORD,:DWORD,DWORD,:DWORD,DWORD,:DWORD
;弹出一个窗口分离当前节点的子节点数据《见图右边》。是否深度
@@PopWindow PROTO :DWORD
;以下是举例,例出当前进程
invoke CreateClass,hWin,10,10,500,300
invoke InsertColumn,170,CADD("Process")
invoke InsertColumn,50,CADD("PID")
invoke InsertColumn,80,CADD("PPID")
invoke InsertColumn,80,CADD("Threads")
invoke R3_ProcessSnapshot ;PS:这里不关心枚举进程的方式呵呵
- 标 题:一个汇编的多列控件示例
- 作 者:太粗糙了
- 时 间:2010-07-19 03:27:27
- 链 接:http://bbs.pediy.com/showthread.php?t=117035