树形控件每个项目保存两个值的问题

ywduan 2004-06-21 04:49:43
做一个CTreeCtrl 其中每个Item 显示网页的标题,双击的时候显示它的网址。
网址想通过SetItemData保存起来,可是只有保存成功的那次双击的时候它显示正常,如果批量加入标题和对应的网址,它就显示不正常了,实在痛苦,不知道哪位有没有例子代码可供参考,重金相谢。
谢谢
...全文
93 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywduan 2004-06-22
  • 打赏
  • 举报
回复
lpszItemData是LPCTSTR型的,你看看我应该怎么改进呢?
zhangnanonnet 2004-06-22
  • 打赏
  • 举报
回复
lpszItemData是不是字符串啊,我记得DATA只能存放DWORD类型,你那么强制转换恐怕有问题
zhangnanonnet 2004-06-22
  • 打赏
  • 举报
回复
lpszItemData是不是字符串啊,我记得DATA只能存放DWORD类型,你那么强制转换恐怕有问题
ywduan 2004-06-22
  • 打赏
  • 举报
回复
请您帮我解决一下我的问题在哪里,为什么总是有时插入正确有时乱码,到底SetItemData应该怎么用呢?
在树中插入一个项目
insert
for (int i = 0;...; i++)
{
....
htiChild = m_etc.InsertItem(m_strNewDir, hti, TVI_LAST);

CString strItemData= "www.aaa.com";
lpszItemData = new TCHAR[strItemData.GetLength()+1];
lpszItemData = (LPCTSTR)strItemData;
m_etc.SetItemData(htiChild, (DWORD)lpszItemData);
}
讲树形控件项目保存
save
for(..)
{LPCTSTR pItemData;
strTitle = GetItemText(hti);
pItemData = (LPCTSTR)GetItemData(hti);
CString strItemData(pItemData);
str = strTitle + strItemData;

save str
}
用文件中的数据初始化树
Load the file to a tree
for (iCount = 0; ...iCount++)
{
strItemText = strItem.Left(n);
lpszItemText = strItemText.GetBuffer();
strItemText.ReleaseBuffer();

strItemData = strItem.Right(strItem.GetLength() - n - 5);
lpszItemData = new TCHAR[strItemData.GetLength()+1];
lpszItemData = strItemData;

InsertItem(lpszItem, hParent, hInsertAfter);
SetItemData(htiSon, (DWORD)lpszItemData);
......
}
快乐鹦鹉 2004-06-21
  • 打赏
  • 举报
回复
SetItemData只能保存DWORD型数据,也就是说,可以保存一个整数信息或者一个地址。你要保存网址,看来只能保存地址了。或者将这些网址放到一个数组中,然后用SetItemData保存对应网址在数组中的索引。使用是再根据索引从数组中读出网址。
Kudeet 2004-06-21
  • 打赏
  • 举报
回复
多给它加一个子项不行吗?
李马 2004-06-21
  • 打赏
  • 举报
回复
不知道你的代码是什么,你可以通过SetItemData设置Item的数据为一个字符串的地址,但请注意这个字符串不能是自动销毁的那种——也就是说,它至少应该在你需要使用它的时候仍然可用。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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