易语言超级列表框双击修改内容示例

DLL命令表

.版本 2

.DLL命令 取表项坐标信息, 整数型, "user32", "SendMessageA"

.参数 hwnd, 整数型

.参数 wMsg, 整数型

.参数 wParam, 整数型

.参数 lParam, 坐标

.DLL命令 取表项结构信息, 整数型, "user32", "SendMessageA"

.参数 hwnd, 整数型

.参数 wMsg, 整数型

.参数 wParam, 整数型

.参数 lParam, 表项结构信息

.DLL命令 执行窗口程序, 整数型, , "CallWindowProcA"

.参数 程序指针, 子程序指针

.参数 窗口句柄, 整数型

.参数 消息, 整数型

.参数 参数1, 整数型

.参数 参数2, 整数型

.DLL命令 置窗口特征, 子程序指针, , "SetWindowLongA"

.参数 窗口句柄, 整数型

.参数 要置的特征, 整数型

.参数 新特征, 子程序指针, , 仅易语言3.0支持

.DLL命令 创建画笔, 整数型, "gdi32", "CreatePen", , 用指定的样式、宽度和颜色创建一个画笔 如函数执行成功,就返回指向新画笔的一个句柄;否则返回零

.参数 风格, 整数型, , 指定画笔样式,可以是下述常数之一;PS_SOLID:画笔画出的是实线;PS_DASH:画笔画出的是虚线(nWidth必须是1);PS_DOT:画笔画出的是点线(nWidth必须是1);PS_DASHDOT:画笔画出的是点划线(nWidth必须是1);PS_DASHDOTDOT:画笔画出的是点-点-划线(nWidth必须是1);PS_NULL:画笔不能画图;PS_INSIDEFRAME:画笔在由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框中画图。如指定的准确RGB颜色不存在,就进行抖动处理

.参数 宽度, 整数型, , 以逻辑单位表示的画笔的宽度

.参数 颜色, 整数型, , 画笔的RGB颜色;

.DLL命令 取对象句柄, 整数型, "gdi32", "GetStockObject", , 取得一个固有对象(Stock)。这是可由任何应用程序使用的windows标准对象之一 指向指定对象的一个句柄。零表示出错

.参数 类型, 整数型, , 下述表格中定义的任何常数之一BLACK_BRUSH黑色刷子DKGRAY_BRUSH黑灰色刷子GRAY_BRUSH灰色刷子HOLLOW_BRUSH凹刷子LTGRAY_BRUSH浅灰色刷子NULL_BRUSH空刷子WHITE_BRUSH白色刷子BLACK_PEN黑色画笔NULL_PEN空画笔WHITE_PEN白色画笔ANSI_FIXED_FONT采用windows(ANSI)字符集的等宽字体ANSI_VAR_FONT采用windows(ANSI)字符集的不等宽字体DEVICE_DEFAULT_FONT设备使用的默认字体(NT)DEFAULT_GUI_FONT用户界面的默认字体,包括菜单和对话框字体(Windows 95)OEM_FIXED_FONTOEM字符集的固有字体SYSTEM_FONT屏幕系统字体。这是用于菜单、对话框等等的默认不等宽字体SYSTEM_FIXED_FONT屏幕系统字体。这是用于菜单、对话框等等的默认等宽字体(在windows 3.0之前使用)DEFAULT_PALETTE默认调色板;

.DLL命令 选入设备场景, 整数型, "gdi32", "SelectObject", , 每个设备场景都可能有选入其中的图形对象。其中包括位图、刷子、字体、画笔以及区域等等。一次选入设备场景的只能有一个对象。选定的对象会在设备场景的绘图操作中使用。例如,当前选定的画笔决定了在设备场景中描绘的线段颜色及样式 与以前选入设备场景的相同hObject类型的一个对象的句柄,零表示出错。如选定的对象是一个区域(Region),结果就是下列常数之一:SIMPLEREGION, ; COMPLEXREGION 或 NULLREGION 对区域进行描述, GDI_ERROR 表示出错

.参数 设备场景句柄, 整数型, , 一个设备场景的句柄

.参数 对象句柄, 整数型, , 一个画笔、位图、刷子、字体或区域的句柄;

.DLL命令 删除对象, 整数型, "gdi32", "DeleteObject", , 用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。对象使用的所有系统资源都会被释放 非零表示成功,零表示失败

.参数 对象句柄, 整数型, , 一个GDI对象的句柄;

.DLL命令 释放设备场景, 整数型, "user32", "ReleaseDC", , 释放由调用GetDC或GetWindowDC函数获取的指定设备场景。它对类或私有设备场景无效(但这样的调用不会造成损害) 执行成功为1,否则为0

.参数 窗口句柄, 整数型, , 要释放的设备场景相关的窗口句柄

.参数 设备场景, 整数型, , 要释放的设备场景句柄;

.DLL命令 画矩形, 整数型, "gdi32", "Rectangle", , 用当前选定的画笔描绘矩形,并用当前选定的刷子进行填充 非零表示成功,零表示失败。会设置GetLastError

.参数 设备场景句柄, 整数型, , 设备场景的句柄

.参数 左上角横坐标, 整数型, , 指定矩形左上角位置

.参数 左上角纵坐标, 整数型, , 同上

.参数 右下角横坐标, 整数型, , 指定矩形右下角位置

.参数 右下角纵坐标, 整数型, , 同上;

.DLL命令 取设备场景, 整数型, "user32", "GetDC", , 获取指定窗口的设备场景 指定窗口的设备场景句柄,出错则为0

.参数 设备场景窗口句柄, 整数型, , 将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC;

自定义数据类型表

.版本 2

.数据类型 表项结构信息

.成员 横向, 整数型

.成员 纵向, 整数型

.成员 flags, 整数型

.成员 行, 整数型

.成员 列, 整数型

.数据类型 坐标

.成员 x

.成员 y

.数据类型 矩形坐标

.成员 左

.成员 上

.成员 右

.成员 下

超级列表框双击修改

.版本 2

.支持库 iext

.程序集 窗口程序集1

.程序集变量 表项信息, 表项结构信息

.程序集变量 老矩形, 矩形坐标

.程序集变量 老表项

.程序集变量 老列

.程序集变量 行高

.程序集变量 行

.程序集变量 列

.程序集变量 设备句柄

.程序集变量 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)

运行结果:

总结

以上是 易语言超级列表框双击修改内容示例 的全部内容, 来源链接: utcz.com/z/328720.html

回到顶部