请问CTreeCtrl控件的SetItemData能不能设置一个字符串?(在线等)

sulayoyo 2006-01-04 03:15:52
目的:
我希望在tree上显示学生的姓名,当用户点击某个姓名节点时,在另一个文本框上显示出学生的班级等信息。
问题:
我在initial tree 的时候,如何把班级等信息写进去,我查msdn,发现了SetItemData(hItem, (DWORD) hItem);可以设置与Item相关的信息,可是我怎么把一个CSting的信息设置进去呢 ?
...全文
359 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy_cai 2006-01-04
  • 打赏
  • 举报
回复
个人觉得最简单的方式是存放在data区存放一个指针数据
而这个指针指向你真正需要存放的内容地址

所以其实树结构的任一节点可以存放足够多的信息吧
gao_ming77 2006-01-04
  • 打赏
  • 举报
回复
CStudent *pStudent = (CStudent*)m_TreeCtrl.GetItemData(hSelectedNode);
sulayoyo 2006-01-04
  • 打赏
  • 举报
回复
help~ 我该怎么写呢
sulayoyo 2006-01-04
  • 打赏
  • 举报
回复
如果 我的name, age 是另一个类的成员变量,我是否可以
CStudent *pStudent = new CStudent ;
SetItemData(hItem,(DWORD)CStudent); (应该没问题吧?)
当我想要得到name的时候 ,我写成
HTREEITEM hSelectedNode = m_TreeCtrl.GetSelectedItem();
CStudent *pStudent = m_TreeCtrl.GetItemData(hSelectedNode);

编译错误说error C2440: 'initializing' : cannot convert from 'DWORD_PTR' to CStudent *' 为什么呢?
lixiaosan 2006-01-04
  • 打赏
  • 举报
回复
struct Info
{
char* name;
int age;
}

struct Info *pStudent = new Info;
SetItemData(hItem,(DWORD)pStudent);

最后记得释放
delete pStudent;
pStudent = NULL;
lixiaosan 2006-01-04
  • 打赏
  • 举报
回复
CTreeCtrl::SetItemText

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧