| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 437 人关注过本帖
标题:树视图里怎么知道我双击的节点是哪个节点?
收藏  订阅  推荐  打印 
cc3213252
Rank: 1
等级:新手上路
帖子:15
积分:252
注册:2007-1-16
树视图里怎么知道我双击的节点是哪个节点?

我用CLeftView方式创建了一个树视图,并在初始化时用下列语句创建树

HTREEITEM it;
TV_INSERTSTRUCT itt;
it=GetTreeCtrl().InsertItem("中国网通");
itt.hParent=it;
itt.hInsertAfter=TVI_LAST;
itt.item.pszText="201线路";
itt.item.mask=TVIF_TEXT;
GetTreeCtrl().InsertItem(&itt);
itt.item.pszText="202线路";
GetTreeCtrl().InsertItem(&itt);

然后我在CLeftView类中增加双击消息,想通过双击消息得到我双击节点的文字(中国网通,201线路或202线路等)

void CLeftView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{

NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hItem = pNMTreeView->itemNew.hItem;
CString m_curFirstLevelName = GetTreeCtrl().GetItemText(hItem);
MessageBox(m_curFirstLevelName);
*pResult = 0;
}

为什么我双击弹出的消息框没有任何文字呢?郁闷,谁能说说可能是怎么回事吗?

[此贴子已经被作者于2007-11-19 15:00:36编辑过]

搜索更多相关主题的帖子: 节点  视图  
2007-11-17 16:00
cc3213252
Rank: 1
等级:新手上路
帖子:15
积分:252
注册:2007-1-16
回复:(cc3213252)树视图里如何得到当前选中节点文字...

没有人知道吗?或者不用我这样做,怎么样才能知道我双击的节点是哪个节点呢?
2007-11-19 14:57
赵博闻
Rank: 2
等级:注册会员
帖子:47
积分:876
注册:2007-9-20

你这样做应该是的不到想要的效果的
你的树是自行创建的信息都在初始化函数中,一旦执行完就消失了,如果你一定要这样做就要动态分配内存,mallco/new把要保留的信息保存在CArray/Map中使用时再调用。但你不觉得这样很麻烦吗。
建议直接拖一个CTreeCtrl控件在你想要它出现的地方。
插入结点:InsertItem
双击时可用:
HTREEITEM hItem;
    hItem = SelectItem();
if(hItem != NULL)
{
    GetItemText.....
}

2008-4-28 10:29
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.066378 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved