.版本 2
.支持库 iext
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
.子程序 _按钮1_被单击
.局部变量 文本数组, 文本型, , "0"
.局部变量 n, 整数型
重定义数组 (文本数组, 假, 树型框1.取项目数 ())
.计次循环首 (树型框1.取项目数 (), n)
文本数组 [n] = 树型框1.取项目文本 (n - 1)
树型框1.置项目数值 (n - 1, 取文本地址 (文本数组 [n], 文本数组 [n], 0))
.计次循环尾 ()
SortChildren (树型框1.取窗口句柄 (), 0, 1) ' Tpye=0是升序,1是降序
.子程序 SortChildren
.参数 hWnd, 整数型
.参数 hItem, 整数型
.参数 Type, 整数型, 可空, 排序类型
.局部变量 hItemTemp, 整数型
.局部变量 TVSORTCB, TVSORTCB
hItemTemp = hItem
.循环判断首 ()
hItemTemp = TreeView_GetChild (hWnd, hItemTemp)
.如果 (hItemTemp ≠ 0)
SortChildren (hWnd, hItemTemp)
.否则
hItemTemp = TreeView_GetNextSibling (hWnd, hItemTemp)
.如果结束
.循环判断尾 (hItemTemp ≠ 0)
TVSORTCB.hParent = hItem
TVSORTCB.lpfnCompare = 到整数 (&CompareFunc)
TVSORTCB.lParam = 选择 (Type = 0, 1, 0)
SendMessageTree (hWnd, #TVM_SORTCHILDRENCB, 0, TVSORTCB)
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
' TVSORTCB://msdn.microsoft.com/en-us/library/bb773462(v=vs.85).aspx
' TVM_SORTCHILDRENCB://msdn.microsoft.com/en-us/library/bb773785(v=vs.85).aspx
' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
.子程序 TreeView_GetChild, 整数型
.参数 hWnd, 整数型
.参数 hItem, 整数型
返回 (SendMessageA (hWnd, #TVM_GETNEXTITEM, #TVGN_CHILD, hItem))
.子程序 TreeView_GetNextSibling, 整数型
.参数 hWnd, 整数型
.参数 hItem, 整数型
返回 (SendMessageA (hWnd, #TVM_GETNEXTITEM, #TVGN_NEXT, hItem))
.子程序 CompareFunc, 整数型
.参数 lParam1, 整数型
.参数 lParam2, 整数型
.参数 lParamSort, 整数型
.局部变量 整数1, 整数型
.局部变量 整数2, 整数型
' lParam1 和 lParam2 是 树型框.置表项数值() 的值;
' 如果 lParam1 要排在 lParam2 前面,则函数需要返回一个负数;
' 如果 lParam1 要排在 lParam2 后面,则函数需要返回一个正数;
' 如果不改变两者位置则返回0。
.判断开始 (lParamSort = 1)
返回 (lstrcmpA (lParam1, lParam2)) ' 升序
.默认
返回 (lstrcmpA (lParam2, lParam1)) ' 降序
.判断结束
易语言组合框升序排序