我的这段易语言代码哪里需要修改啊。关于超级列表框的。
发布网友
发布时间:2022-05-04 22:25
我来回答
共3个回答
热心网友
时间:2022-06-26 13:11
请将以下代码复制到你的程序中。覆盖掉你自己的超激烈框框被双击事件响应子程序。
我已经将类似功能封装,动态创建各种编辑控件(日期框、编辑框、组合框),灵活性大得多。
.版本 2
.子程序 _超级列表框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 局_位置信息, LVHITTESTINFO
.局部变量 局_行索引, 整数型
.局部变量 局_列索引, 整数型
.局部变量 局_矩形范围, RECT
局_位置信息.pt.X = 横向位置
局_位置信息.pt.Y = 纵向位置
SendMessage_LVHITTESTINFO (超级列表框1.取窗口句柄 (), #LVM_SUBITEMHITTEST, 0, 局_位置信息)
.如果真 (局_位置信息.iItem = -1 或 局_位置信息.iSubItem = -1)
' 不在表项范围
返回 ()
.如果真结束
局_矩形范围.Top = 局_位置信息.iSubItem
SendMessage_RECT (超级列表框1.取窗口句柄 (), #LVM_GETSUBITEMRECT, 局_位置信息.iItem, 局_矩形范围)
超级列表框_编辑框.置父窗口 (超级列表框1) ' 请将编辑框放在超表里面(作为子窗口)。我将此代码放在这里只是为了提醒你。
超级列表框_编辑框.移动 (局_矩形范围.Left, 局_矩形范围.Top, 局_矩形范围.Right - 局_矩形范围.Left, 局_矩形范围.Bottom - 局_矩形范围.Top)
超级列表框_编辑框.可视 = 真
.DLL命令 SendMessage_LVHITTESTINFO, 整数型, "user32", "SendMessageA", , 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, ; SendMessageByString是该函数的“类型安全”声明形式 由具体的消息决定
.参数 hwnd, 整数型, , 要接收消息的那个窗口的句柄
.参数 wMsg, 整数型, , 消息的标识符
.参数 wParam, 整数型, , 具体取决于消息
.参数 lParam, LVHITTESTINFO, , 具体取决于消息;
.DLL命令 SendMessage_RECT, 整数型, "user32", "SendMessageA", , 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, ; SendMessageByString是该函数的“类型安全”声明形式 由具体的消息决定
.参数 hwnd, 整数型, , 要接收消息的那个窗口的句柄
.参数 wMsg, 整数型, , 消息的标识符
.参数 wParam, 整数型, , 具体取决于消息
.参数 lParam, RECT, , 具体取决于消息;
.版本 2
.数据类型 LVHITTESTINFO
.成员 pt, POINTAPI
.成员 flags, 整数型
.成员 iItem, 整数型
.成员 iSubItem, 整数型
.成员 iGroup, 整数型
.数据类型 POINTAPI
.成员 X, 整数型
.成员 Y, 整数型
.数据类型 RECT
.成员 Left, 整数型
.成员 Top, 整数型
.成员 Right, 整数型
.成员 Bottom, 整数型
.常量 LVM_SUBITEMHITTEST, "4153"
.常量 LVM_GETSUBITEMRECT, "4152"
热心网友
时间:2022-06-26 13:11
超表有可编辑属于吧??
就算超表不满意,也还有高表不是
这种移动组件的方法,不是很好
热心网友
时间:2022-06-26 13:12
.数据类型 LVHITTESTINFO
.成员 pt, POINTAPI
.成员 flags, 整数型
.成员 iItem, 整数型
.成员 iSubItem, 整数型
.成员 iGroup, 整数型
.数据类型 POINTAPI
.成员 X, 整数型
.成员 Y, 整数型
.数据类型 RECT
.成员 Left, 整数型
.成员 Top, 整数型
.成员 Right, 整数型
.成员 Bottom, 整数型
.常量 LVM_SUBITEMHITTEST, "4153"
.常量 LVM_GETSUBITEMRECT, "4152"