前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >listview内嵌子控件的响应问题

listview内嵌子控件的响应问题

作者头像
用户2135432
发布于 2018-06-04 06:07:50
发布于 2018-06-04 06:07:50
9060
举报
文章被收录于专栏:猛牛哥的博客猛牛哥的博客

最近做程序,需要在一个listview里面嵌入一个按钮,但是请嵌入的按钮无法做出响应。到论坛求助后才得到前辈指点:"这种嵌入控件的控件,最好用wndproc回调函数处理消息。 否则应在父控件窗口中转发命令消息。"

第一种方法:用wndproc回调函数处理消息

import win.ui; /*DSG{{*/ var winform = ..win.form( bottom=356;parent=...;text="AAuto Form";right=351 ) winform.add( listview={ bgcolor=16777215;bottom=296;right=309;left=37;top=41;z=1;edge=1;cls="listview" } ) /*}}*/

//winform.richedit.text = "" winform.listview.addCtrl( ["btn1"] ={ cls="button";left=0;top=0;right=50;bottom=50;autoResize=false ;hide=1;edge=1;hide=0;text="btn1";id=100;  }; ) winform.listview.addCtrl( ["btn2"] ={ cls="button";left=0;top=52;right=50;bottom=102;autoResize=false ;hide=1;edge=1;hide=0;text="btn2";id=101;  }; ) winform.listview.addCtrl( ["btn3"] ={ cls="button";left=0;top=104;right=50;bottom=154;autoResize=false ;hide=1;edge=1;hide=0;text="btn3";id=102;  }; ) winform.listview.addCtrl( ["btn4"] ={ cls="button";left=0;top=156;right=50;bottom=206;autoResize=false ;hide=1;edge=1;hide=0;text="btn4";id=103;  }; )

winform.listview.wndproc = function(hwnd,message,wParam,lParam){ select(message) { case 0x111/*_WM_COMMAND*/ { select(wParam) { case 100 { winform.msgbox("我是按钮1 btn1") } case 101 { winform.msgbox("我是按钮2 btn2") } case 102 { winform.msgbox("我是按钮3 btn3") } case 103 { winform.msgbox("我是按钮4 btn4") } } } } //无返回值则继续调用默认回调函数 }

winform.show() win.loopMessage(); 第二种方法:父控件转发消息

import win.ui; /*DSG{{*/ var winform = ..win.form( bottom=399;parent=...;text="AAuto Form";right=599 ) winform.add( listview={ bgcolor=16777215;bottom=291;right=520;left=21;top=46;z=1;gridLines=1;edge=1;cls="listview" }; edit={ bottom=363;text="edit";left=82;top=337;z=2;right=431;edge=1;cls="edit" } ) /*}}*/

winform.listview.insertColumn("dfdfd",150) winform.listview.insertColumn("dfdfd",150) winform.listview.insertColumn("dfdfd",-1) winform.listview.addItem({"sdfsdf";'sdfd645'})

io.open() winform.listview.addCtrl( edit = { cls="button";left=0;top=0;right=50;bottom=50;autoResize=false ;edge=1; oncommand=function(id,event){ io.print("1111") } } )

winform.listview.wndproc = function(hwnd,message,wParam,lParam){ winform.cmdTranslate(hwnd,message,wParam,lParam);

//此处是关键,实现消息转发,子控件才能接收响应 }

var rc = winform.listview.getItemRect(1,2,,2) winform.listview.edit.setRect(rc)

winform.show() win.loopMessage();

相关知识:WM_COMMAND(窗口消息) wndproc(窗口过程函数)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013 年 11 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【四】Bluetooth 技术||链路层五种通信模式和空口协议设计 (Core_v5.2)
前篇博文LE States and Packets[1] 已经介绍了LE 设备在不同通信模式下承担不同的角色,为了方便管理蓝牙设备在多个角色间的切换,链路层使用了状态机来管理蓝牙当前的状态及该状态下支持的通信模式。同时,也介绍了BLE 链路层的两种基本报文格式,以及在不同物理信道上传输时PDU (Protocol Data Unit) 结构的差异。
空白的贝塔
2021/09/08
3.3K0
【四】Bluetooth 技术||链路层五种通信模式和空口协议设计 (Core_v5.2)
【三】Bluetooth 技术||链路层七种状态与空口报文设计(Core_v5.2)
广播通信中发出广播报文的一方称为Advertiser,接收广播报文的一方称为Scanner,连接通信中发起连接的一方称为Mater,接受连接的一方称为Slave,这些设备角色并不是固定的,一个蓝牙设备可以根据需要在多个角色之间切换,也可以同时身兼多个角色。为了方便管理蓝牙设备的角色,在链路层使用状态机来标识蓝牙设备当前的状态,蓝牙设备角色的切换也就相当于状态机中状态的迁移,Bluetooth 5.2 链路层状态机如下:
空白的贝塔
2021/09/08
2.4K0
【三】Bluetooth 技术||链路层七种状态与空口报文设计(Core_v5.2)
蓝牙核心规范(V5.2)9.1-深入详解之链路层规范
使用设备地址和地址类型来标识设备;地址类型表示公共设备地址或随机设备地址。公共设备地址和随机设备地址的长度均为48位。
心跳包
2021/12/07
1.8K0
蓝牙核心规范(V5.2)9.1-深入详解之链路层规范
Android 蓝牙开发(3)——蓝牙的详细介绍
蓝牙技术最初是由爱立信创制的。技术始于爱立信公司 1994 方案,它是研究在移动电话和其他配件间进行低功耗、低成本无线通信连接的方法。发明者希望为设备间的通讯创造一组统一规则(标准化协议)用来解决用户间相互不兼容的移动电子设备。
开发者
2019/12/26
2.4K0
Android 蓝牙开发(3)——蓝牙的详细介绍
蓝牙BLE技术
蓝牙低功耗无线电的调制速率由规范规定为恒定的1Mbps(兆比特每秒)。当然,这是理论上的上限。在实践中,根据所使用设备的限制,您可以期望每秒5- 10kb。就距离而言,BLE专注于非常短的距离通信。可以创建和配置一个BLE设备,该设备可以可靠地传输30米或30米以上的视线范围内的数据,但典型的操作范围可能更接近2到5米。当然,续航里程越高,电池消耗就越多,所以在调整你的设备以适应更高的续航里程时要小心。 蓝牙BLE组成 BLE由三个主要构建模块组成:应用程序、主机和控制器。顾名思义,应用程序块是与蓝牙协议栈交互的用户应用程序。主机覆盖蓝牙协议栈的上层。控制器覆盖下层。主机可以通过添加一个我们称为HCI的东西与BLE模块通信——主机控制器接口。显然,HCI的目的是将控制器与主机接口,而这个接口使控制器与各种主机接口成为可能。在本例中,单片机运行应用程序,与连接设备进行通信,连接设备由主机和控制器组成。为此,我们使用SPI进行通信,但是也可以使用不同的接口。
心跳包
2020/08/31
2.5K0
深入浅出低功耗蓝牙(BLE)协议栈
一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。
FB客服
2020/12/08
5.1K1
深入浅出低功耗蓝牙(BLE)协议栈
BLE (低功耗蓝牙)协议入门-01-整体介绍
本章介绍蓝牙协议(重点介绍:BLE)的基本特点、版本演进、协议的构成、等基础知识,本章重在了解,目的是对BLE协议有个大概的认知,即了解BLE协议栈的全貌。后续的章节会对每一部分单独进行详细的讲解。
九筒网络安全研究社
2023/10/10
5.5K0
BLE (低功耗蓝牙)协议入门-01-整体介绍
ble4.2空口包详解(air interface packets)
Access Address:接入地址,广播通道的时候使用0x8E89BED6这个固定值,数据通道的时候使用随机值;
ManInRoad
2021/08/20
1.4K0
蓝牙芯片----BK34341开发笔记------快速入门(2)
编译成功后在目录\output\app下,会生成几个bin文件,用联机下载器烧录带CRC的bin文件,如图的bin
心跳包
2020/08/31
2.5K0
蓝牙芯片----BK34341开发笔记------快速入门(2)
CH579实现不可连接的非定向广播包
格式参考ble4.2不可连接的非定向广播包详解(ADV_NONCONN_IND)一文。
ManInRoad
2021/10/09
1.3K0
CH579实现不可连接的非定向广播包
蓝牙安全与攻击案例分析
本文是 2020 年中旬对于蓝牙技术栈安全研究的笔记,主要针对传统蓝牙和低功耗蓝牙在协议层和软件安全性上攻击面分析,并介绍了一些影响较大的蓝牙漏洞原理,比如协议层的 KNOB、BIAS 漏洞,软件实现上的 BlueBorne、SweynTooth 以及 BlueFrag 漏洞等。
evilpan
2023/02/12
2.5K0
蓝牙安全与攻击案例分析
ibeacon蓝牙技术简介
概述 在讲解ibeacon技术之前,我们首先来看一下蓝牙实际到现在经历了哪些发展。截止目前,蓝牙共有八个版本 V1.0/1.1/1.2/2.0/2.1/3.0/4.0/4.1,各版本的功能变化如下: V1.0版(发布日期1999.7.5) 传输速率748~810kb/s; 基本支持立体声,只能单工传输; 通信加密方式致使不同厂家模块难以正常通信; 主辐设备难以区分; 5. 通讯易干扰; Bluetooth技术将2.4GHz的频带划分为79个子频段,而为了适应一些国家的军用需要,Bluetooth 1.
xiangzhihong
2018/02/06
3.5K0
ibeacon蓝牙技术简介
ble4.2可连接的非定向广播包详解(ADV_IND)
AdvA:6字节,广播者的地址,公共或者随机地址,如果是公共地址则Header中的TxAdd为1,否则为0; AdvData:0-31字节,广播数据。
ManInRoad
2021/08/20
2.4K0
蓝牙6.0核心规范发布:可实现厘米级精准定位!
近日,蓝牙技术联盟 (SIG) 发布了新版本的蓝牙核心规范——蓝牙 6.0 版本,虽然蓝牙技术联盟在2023年更新了蓝牙5.4,但这是自2016年蓝牙5 标准推出8年以来最大的一次更新。蓝牙6.0 主要侧重于提高效率和可靠性,允许更多的物联网设备使用它来进行通信,带来了包括了蓝牙信道探测、基于决策的广告过滤、监控广告商、同步适配层 (ISOAL) 的增强功能、LL 扩展功能集和帧空间更新等众多新功能。
芯智讯
2024/09/12
5930
蓝牙6.0核心规范发布:可实现厘米级精准定位!
低功耗蓝牙(BLE)攻击分析
蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。可以说蓝牙是当今世界上,最受欢迎和使用最为广泛的无线技术之一。随着物联网的快速发展,蓝牙技术也加速了其发展步伐以适应不断增长的市场和用户需求。蓝牙特别兴趣小组(SIG)正不断努力提高蓝牙的传输速度,以让蓝牙技术更好的融合于各种物联网设备当中。
FB客服
2018/12/11
5.1K0
低功耗蓝牙(BLE)攻击分析
蓝牙数据报文解析
数据传输时,蓝牙模块分主机和从机两种模式。主机模式能够搜索别的蓝牙模块并且主动与之建立连接。从机模式不能主动的建立连接,从机处于广播状态等待主机连接请求。
Linux兵工厂
2023/02/28
2.5K0
蓝牙数据报文解析
ble4.2扫描请求包详解(SCAN_REQ)
关于Preamble、Access Address、Header、CRC等字段可参考图解ble4.2空口包(air interface packets)一文。
ManInRoad
2021/09/15
1.2K0
ble4.2扫描请求包详解(SCAN_REQ)
Android 低功耗蓝牙开发简述
  低功耗蓝牙是在传统蓝牙的基础上开发的,但它与传统模块不同。最大的特点是降低了成本和功耗。可以快速搜索并快速连接。它保持连接并以超低功耗传输数据,低功耗蓝牙是专门针对基于物联网(IoT)设备构建的功能和应用程序设计的蓝牙版本。蓝牙BLE允许短期远程无线电连接并延长电池寿命。目前,蓝牙低功耗技术已被广泛使用,例如耳机、手环、电子秤、鼠标、键盘、灯、音箱等设备。
晨曦_LLW
2022/09/29
1.5K0
Android 低功耗蓝牙开发简述
Android BlueToothBLE入门(一)——低功耗蓝牙介绍
距上篇文章发布都一个多月了,先声明,我可不会停更。这么长时间没更新文章,其实原因就三点:
Vaccae
2023/08/22
1.4K0
Android BlueToothBLE入门(一)——低功耗蓝牙介绍
Android低功耗蓝牙BLE开发小结
BLE是蓝牙4.0标准的一部分,旨在解决传统蓝牙连接慢、能耗大的问题,Google在Android 4.3(API 18)中引入了对BLE的支持。BLE连接使用GAP(Generic Access Profile)协议,通信使用GATT(Generic Attribute Profile)协议。GATT又以ATT为基础,所有的LE服务都以ATT作为应用层协议。以下深入地介绍这两个协议。
fdroid
2018/07/17
5.8K0
Android低功耗蓝牙BLE开发小结
推荐阅读
相关推荐
【四】Bluetooth 技术||链路层五种通信模式和空口协议设计 (Core_v5.2)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档