nddb 发表于 2024-7-20 17:22:43

SendMessageA 转到火山无效

在易语言里面 获取鼠标位置的超级列表框表项 我移动到火山里面咋不生效啊!












Xelloss0618 发表于 2024-7-20 17:36:06

你的pt和超级列表框鼠标类都不是结构体,你先搞清楚火山的结构体怎样封装吧。

创世魂 发表于 2024-7-20 19:38:05

对啊,x大说的对,你要用结构体。。。

EZDD 发表于 2024-7-20 23:28:32

楼主解决了吗?同求个例子

Xelloss0618 发表于 2024-7-21 00:02:23

<火山程序 类型 = "通常" 版本 = 1 />

类 窗口1 <公开 基础类 = 窗口 折叠 隐藏值属性 = "0" @视窗.布局 = "client_size = \"600, 420\"">
{
    变量 超级列表框1 <类型 = 超级列表框 折叠2 隐藏值属性 = "0" @视窗.布局 = "id = 101\r\npos = \"47, 36, 440, 300\"" 标题 = "超级列表框1">

    方法 超级列表框_鼠标左键被放开 <接收事件 类型 = 整数 注释 = "当鼠标左键被放开时事件被触发" 返回值注释 = "本事件的处理方法如果返回非0整数值,表明事件已经得到处理且不再需要后续处理."
            折叠>
    参数 来源对象 <类型 = 超级列表框 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    参数 横向位置 <类型 = 整数 注释 = "事件触发时的鼠标横向坐标位置,相对所处用户区的左边.">
    参数 纵向位置 <类型 = 整数 注释 = "事件触发时的鼠标纵向坐标位置,相对所处用户区的顶边.">
    参数 辅Zhu键状态 <类型 = 整数 注释 = "事件触发时的辅Zhu键组合状态,为\"辅Zhu键状态\"类中各常量值的组合.">
    {
      如果 (来源对象 == 超级列表框1)
      {
            变量 info <类型 = LVHITTESTINFO>
            info.pt.x = 横向位置
            info.pt.y = 纵向位置
            // LVM_HITTEST 4114 命中测试
            来源对象.发送信息 (4114, 0, 取变量地址 (info))
            调试输出 ((整数)info.flags, info.iItem)
      }

      返回 (0)
    }
}

类 POINT <公开 基础类 = 本地结构模板 折叠 @别名 = "POINT" @模板实现类 = "">
{
    变量 x <公开 类型 = 整数 @输出名 = "x">
    变量 y <公开 类型 = 整数 @输出名 = "y">
}

类 LVHITTESTINFO <公开 基础类 = 本地结构模板 折叠 @别名 = "LVHITTESTINFO" @模板实现类 = "">
{
    变量 pt <公开 类型 = POINT @输出名 = "pt">
    变量 flags <公开 类型 = 无符号整数 @输出名 = "flags">
    变量 iItem <公开 类型 = 整数 @输出名 = "iItem">
    变量 iSubItem <公开 类型 = 整数 @输出名 = "iSubItem">
    变量 iGroup <公开 类型 = 整数 @输出名 = "iGroup">

    #
}

nddb 发表于 2024-7-22 09:41:11

感谢X大!~可以了!~
页: [1]
查看完整版本: SendMessageA 转到火山无效