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;