好久没有写随笔了,讲一下今天在Debug过程中遇到的问题:

  CListBox(列表框),CListCtrl(报表控件),CTreeCtrl(树控件), CComboBox(组合框)都有的两个这两个函数:SetItemData和GetItemData,用这两个函数给这些控件来绑定对象或者数据结构的指针非常方便。

  在Debug过程中,遇到CListCtrl控件和CTreeCtrl的使用,双击树节点获取树节点数据,压入到ListCtrl控间当中;这其中涉及到树控件的过滤功能,我这块的过滤功能是使用树的重建来建立一颗新树。

  1、在未过滤之前获取的树节点压入到ListCtrl当中:ListCtrl.SetItemData( 0, (DWORD)pTreeItemInfo1 );

  2、过滤后重建树获取树节点压入到ListCtrl当中:ListCtrl.SetItemData( 1, (DWORD)pTreeItemInfo2 );

  3、在获取压入到ListCtrl当中的数据时,由于重建树,原有未过滤的树节点已经Destroy,CTreeItemInfo* pTreeItemInfo = (CTreeItemInfo*)ListCtrl.GetItemData(0);

  pTreeItemInfo就成为野指针,所以在使用以上两个函数的时候一定注意 要压入堆上申请的空间并且要一直存在,防止野指针的产生

转载于:https://www.cnblogs.com/lee1023/p/4814735.html

论SetItemData和GetItemData相关推荐

  1. MFC Combox SetItemData与GetItemData使用实例

    例1:使用结构体 定义全局变量(本文件中) struct PartType { int KeyIndex;   CString KeyValue; }; int arrAllValue[]={1,2, ...

  2. getitemdata中参数设置

    相关讨论: https://bbs.csdn.net/topics/310250682

  3. 2010.6.15 常用数据类型转换总结

    1.CTreeCtrl用法 当需要将Tree的每个节点与某个类对象绑定的时候,可以使用GetItemData  or  SetItemData 与节点进行绑定.返回结果为DWORD_PTR类型,通过转 ...

  4. CListCtrl列表控件---总结

    (一)列表控制的主要功能  列表控制和视(List Control&View)主要用来以各种方式显示一组数据记录供用户进行各种操作,Windows98/95中资源管理器中的"查看&q ...

  5. CListCTrl控件排序(一)

    来源网站:http://blog.csdn.net/hgy413/article/details/6719908 列表控件(CListCtrl)的排序功能不像其它直接调用API就可以完成的功能一样.它 ...

  6. VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)

    上一节是关于列表视图控件List Control的上半部分,简单介绍了列表视图控件,其通知消息的处理和有关结构体的定义.本节继续讲解下半部分,包括列表视图控件的创建.CListCtrl类的主要成员函数 ...

  7. 树形控件Tree Control

    树形控件Tree Control 前面两节为大家讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Control. 树形控件简介 树形控件在Windows系统 ...

  8. CListCtrl的使用完全指南

    CListCtrl的使用完全指南 http://www.programbbs.com/doc/2887.htm 所属类别:VC++ 推荐指数:★★★☆ 文档人气:18717 本周人气:22 发布日期: ...

  9. MFC列表控件ListControl和树控件TreeControl

    列表控件 列表相关的类:CListCtrl-父类是CWnd,本质是一个控件: CListView-父类是CView,本质是一个视图.相当于在视图中嵌入了一个CListCtrl控件 列表控件的使用 1. ...

  10. CListCtrl的用法总结

    1 CListCtrl的风格 CListCtrl的风格有四种: LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小 ...

最新文章

  1. 70.打印所有Spring boot载入的bean【从零开始学Spring Boot】
  2. 明日发布组队学习计划!
  3. 华为手机的“美国梦”
  4. pycharm用爱发电
  5. net.sf.json将string转为map
  6. Java高新技术笔记:反射、多线程、泛型、枚举、javaBean、代理
  7. Vue学习(组件的定义及调用、路由)-学习笔记
  8. python实例化是什么意思_Python中实例化class的执行顺序示例详解
  9. python列表存储字符串_Python 基础知识全篇-字符串列表
  10. Windows GVim
  11. 一行代码,能导入所有Python库!
  12. 深度学习:卷积神经网络CNN变体
  13. Eclipse开启或取消快速导航栏(toggle breadcrumb)
  14. Ubuntu22.04安装Arduino IDE及Arduino UNO(使用CH341驱动)调试方法
  15. 华为网络设备SSH连接
  16. 没有网线接口的MacBook电脑怎么连接有线网络?USB外置网卡来帮忙
  17. 街舞中的rolling机器人_这,就是街舞中的那些“Swag”十足的舞蹈类型,你了解吗?...
  18. xp系统怎么创建新宽带连接服务器地址,XP宽带连接怎么创建?
  19. 【项目实战二】基于模板匹配和形态学操作的信用卡卡号识别(OpenCV+Python)
  20. 一个优秀的国产ITSM软件应该有哪些特性?

热门文章

  1. 由一个国标文件中,英文名与中文意思的对比,看用词的重要性
  2. 纽微特反省:别人犯错不敢说,那是因为自己不干活
  3. python使用CV2剪切图片
  4. 程序员打产品经理事件:做不了的事情,直接推给主管
  5. using编译指令和using声明比较
  6. VS C# string 字符查找 寻找指定字符
  7. mysql用declare会报错_mysql创建存储过程declare 变量时报错
  8. linux下默认分区system的id,Linux学习笔记之系统中的分区和文件系统
  9. jdbc mysql url写法_Springboot项目连接MySql写了一个bug你也可能遇到
  10. 数据结构详解之栈和队列