MFC树控件添加复选框风格后,点击复选框会有消息或是相应的事件产生吗

MFC树控件添加复选框风格后,点击复选框会有消息或是相应的事件产生吗,第1张

你可以响应NM_CLICK消息,这消息响应函数中做判断,找到“击中”的HTREEITEM,然后判断它的复选框状态。

用到的一些函数大概有,GetCursorPos,ScreenToClient,HitTest,GetCheck等。希望对你有用

关键词: 递归 多级菜单 复选

1.显示多级菜单,默认显示一级.

2.可以通过点击有子级的行展开菜单

3.通过复选框,改变选中状态。状态有全选、半选、未选中

4.可以扩展获取当前所选的条目集合

1.首先根Datasource进行数据处理

2.生成一个handler:MultilevelDataHandler 将数据处理逻辑在handle处理,将数据处理隔离

3.建立一个数据模型,需要用一些属性记录层级关系。最后我用了一个字典来记录原始的数据信息。

这里是Demo的数据Json

4.将jsonDictionary转化成数据模型的时候,把层级关系也一并赋值。

由于数据层级数量的不确定性,这里用递归的方式把每层的数据结构都放到其父类的subArray当中。

5.建一个新的数组用来存储要在tableView上展示的数据模型,按照父类子类,父类子类的顺序排列。我这里默认是把第一级全部关闭展示的

6.实现菜单展开关闭功能

7.实现复选框功能

根据locationArray里记录的每一层父级的序号,找到当前model的父级

由于层级数量的不确定性,所以多次使用到了递归的方式。要注意递归的结束条件,必须陷入死循环当中。

https://github.com/YuTongHon/MultilevelMenuWithCheckbox


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11938890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存