码迷,mamicode.com
首页 > 其他好文 > 详细

论SetItemData和GetItemData

时间:2015-09-16 23:18:30      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

好久没有写随笔了,讲一下今天在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就成为野指针,所以在使用以上两个函数的时候一定注意 要压入堆上申请的空间并且要一直存在,防止野指针的产生

论SetItemData和GetItemData

标签:

原文地址:http://www.cnblogs.com/lee1023/p/4814735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!