.版本 2
.支持库 iext
.程序集 窗口程序集_启动窗口
.程序集变量 表项信息, 表项结构信息
.程序集变量 老矩形, 矩形坐标
.程序集变量 老表项
.程序集变量 老列
.程序集变量 行高
.程序集变量 行
.程序集变量 列
.程序集变量 设备句柄
.程序集变量 hBrush
.程序集变量 默认窗口, 子程序指针
.子程序 _编辑框1_失去焦点
超级列表框1.置标题 (行, 列, 编辑框1.内容)
编辑框1.可视 = 假
超级列表框1.允许重画 ()
.子程序 __启动窗口_创建完毕
.局部变量 表项坐标, 坐标
.局部变量 初始高度
默认窗口 = 窗口特征 (超级列表框1.取窗口句柄 (), -4, &滚动条事件)
取坐标信息 (超级列表框1.取窗口句柄 (), 4096 + 16, 0, 表项坐标)
初始高度 = 表项坐标.y
取坐标信息 (超级列表框1.取窗口句柄 (), 4096 + 16, 1, 表项坐标)
行高 = 表项坐标.y - 初始高度
编辑框1.高度 = 行高 + 1
设备句柄 = 取设备场景 (超级列表框1.取窗口句柄 ())
hBrush = 取对象句柄 (5)
选入设备场景 (设备句柄, hBrush)
.子程序 _编辑框1_放开某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.如果真 (键代码 = #回车键)
编辑框1.可视 = 假
超级列表框1.置标题 (行, 列, 编辑框1.内容)
.如果真结束
.子程序 滚动条事件, 整数型, , 不要修改该子程序的返回值及参数的类型!
.参数 句柄, 整数型
.参数 消息, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型
.局部变量 画笔句柄
.局部变量 矩形区域, 矩形坐标
.判断开始 (消息 = 276)
老矩形 (老表项, 老列)
画笔句柄 = 创建画笔 (0, 1, 超级列表框1.背景颜色)
选入设备场景 (设备句柄, 画笔句柄)
画矩形 (设备句柄, 老矩形.左, 老矩形.上, 老矩形.右, 老矩形.下)
.如果真 (是否已创建 (编辑框1))
编辑框1.可视 = 假
.如果真结束
.判断 (消息 = 277)
编辑框1.可视 = 假
.默认
.判断结束
返回 (执行窗口程序 (默认窗口, 句柄, 消息, 参数1, 参数2))
.子程序 _超级列表框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 表项坐标, 坐标
.局部变量 i
.局部变量 画笔句柄
画笔句柄 = 创建画笔 (0, 1, 超级列表框1.背景颜色)
选入设备场景 (设备句柄, 画笔句柄)
老矩形 (老表项, 老列)
画矩形 (设备句柄, 老矩形.左, 老矩形.上, 老矩形.右, 老矩形.下)
表项信息.横向 = 横向位置
表项信息.纵向 = 纵向位置
取表项结构信息 (超级列表框1.取窗口句柄 (), 4153, 0, 表项信息)
超级列表框1.现行选中项 = -1
.如果真 (表项信息.行 ≠ -1)
取坐标信息 (超级列表框1.取窗口句柄 (), 4096 + 16, 表项信息.行, 表项坐标)
编辑框1.顶边 = 超级列表框1.顶边 + 表项坐标.y + 1
编辑框1.左边 = 表项坐标.x + 超级列表框1.左边
.如果真 (表项信息.列 = 0)
编辑框1.左边 = 表项坐标.x + 超级列表框1.左边
.如果真结束
.计次循环首 (表项信息.列, i)
编辑框1.左边 = 编辑框1.左边 + 超级列表框1.取列宽 (i - 1)
.计次循环尾 ()
编辑框1.宽度 = 超级列表框1.取列宽 (表项信息.列)
编辑框1.内容 = 超级列表框1.取标题 (表项信息.行, 表项信息.列)
编辑框1.可视 = 真
超级列表框1.禁止重画 ()
编辑框1.获取焦点 ()
编辑框1.被选择字符数 = -1
.如果真结束
.子程序 _超级列表框1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 画笔句柄
.局部变量 矩形区域, 矩形坐标
老矩形 (老表项, 老列)
画笔句柄 = 创建画笔 (0, 1, 超级列表框1.背景颜色)
选入设备场景 (设备句柄, 画笔句柄)
画矩形 (设备句柄, 老矩形.左, 老矩形.上, 老矩形.右, 老矩形.下)
画笔句柄 = 创建画笔 (0, 1, #黑色)
选入设备场景 (设备句柄, 画笔句柄)
取表项结构信息 (超级列表框1.取窗口句柄 (), 4153, 0, 表项信息)
取得表项矩形区域 (横向位置, 纵向位置, 矩形区域)
画矩形 (设备句柄, 矩形区域.左, 矩形区域.上, 矩形区域.右, 矩形区域.下) ' 给点击的表项画个框来模拟选中,自创的^&^
老表项 = 表项信息.行
老列 = 表项信息.列
.子程序 老矩形
.参数 表项
.参数 列
.局部变量 i
.局部变量 表项坐标, 坐标
取坐标信息 (超级列表框1.取窗口句柄 (), 4096 + 16, 表项, 表项坐标)
老矩形.上 = 表项坐标.y
老矩形.左 = 表项坐标.x
.计次循环首 (表项信息.列, i)
老矩形.左 = 老矩形.左 + 超级列表框1.取列宽 (i - 1)
.计次循环尾 ()
老矩形.右 = 老矩形.左 + 超级列表框1.取列宽 (表项信息.列) - 2
老矩形.下 = 老矩形.上 + 行高 - 1
.子程序 取得表项矩形区域
.参数 横向
.参数 纵向
.参数 矩形区域, 矩形坐标, 参考
.局部变量 表项坐标, 坐标
.局部变量 i
表项信息.横向 = 横向
表项信息.纵向 = 纵向
取表项结构信息 (超级列表框1.取窗口句柄 (), 4153, 0, 表项信息)
超级列表框1.现行选中项 = -1
.如果真 (表项信息.行 ≠ -1)
取坐标信息 (超级列表框1.取窗口句柄 (), 4096 + 16, 表项信息.行, 表项坐标)
矩形区域.上 = 表项坐标.y
矩形区域.左 = 表项坐标.x
.计次循环首 (表项信息.列, i)
矩形区域.左 = 矩形区域.左 + 超级列表框1.取列宽 (i - 1)
.计次循环尾 ()
矩形区域.右 = 矩形区域.左 + 超级列表框1.取列宽 (表项信息.列) - 2
矩形区域.下 = 矩形区域.上 + 行高 - 1
.如果真结束
.子程序 _编辑框1_获得焦点
行 = 表项信息.行
列 = 表项信息.列
.子程序 __启动窗口_将被销毁
删除对象 (hBrush)
易语言将超级列表框现行选中项写到编辑框
易语言+超级列表框+修改表项图标
易语言超级列表框单击表项直接编辑