首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CListCtrl,CTreeCtrl 中需要隐藏数据,使用SetItemData怎么做

2012-01-19 
CListCtrl,CTreeCtrl 中需要隐藏数据,使用SetItemData如何做?CListCtrllistlist.SetItemData(int,DWORD_P

CListCtrl,CTreeCtrl 中需要隐藏数据,使用SetItemData如何做?
CListCtrl   list;
list.SetItemData(int,DWORD_PTR);

CTreeCtrl   tree;
tree.SetItemData(HTREEITEM,DWORD_PTR);

-------------------------------------------
这2个函数中的int与HTREEITEM很好理解

如果需要隐藏的数据是   int或long型,可以直接设置

int   i=100;
tree.SetItemData(HTREEITEM,100);  

在使用GetItemData时可以得到这个数据是100


但是当需要隐藏的数据是CString时,
CString   str   =   "1100 ";

tree.SetItemData(HTREEITEM,&str);

在使用GetItemData时得到的数据是乱码


应该怎么样才能将这个字符串类型值保存下来??



[解决办法]
一个是值类型,一个是引用类型
[解决办法]
char* ch = new char[xxx];
strcpy(ch, "xxx ");

tree.SetItemData(HTREEITEM,ch);

在析构或不用的地方
char* ch;
ch = (char*)tree.GetItemData(HTREEITEM);
delete []ch;

热点排行