我用下面的方法添加了一些数据 HTREEITEM hRoot,hCur;//树控制项目句柄
TV_INSERTSTRUCT TCItem;//插入数据项数据结构 TCItem.hParent=TVI_ROOT;//增加根项
TCItem.hInsertAfter=TVI_LAST;//在最后项之后
TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//设屏蔽
TCItem.item.pszText=_T("数据选择");
TCItem.item.lParam=0;//序号
TCItem.item.iImage=0;//正常图标
TCItem.item.iSelectedImage=1;//选中时图标
hRoot=m_treeData.InsertItem(&TCItem);//返回根项句柄 for(int i=0;i<4;i++){//增加各厂家
TCItem.hParent=hRoot;
TCItem.item.pszText=_T("123");
TCItem.item.lParam=(i+1)*10;//子项序号
hCur=m_treeData.InsertItem(&TCItem);
for(int j=0;j<5;j++){//增加各产品
TCItem.hParent=hCur;
TCItem.item.pszText=_T("345");
TCItem.item.lParam=(i+1)*10+(j+1);//子项序号
m_treeData.InsertItem(&TCItem);
}
m_treeData.Expand(hCur,TVE_EXPAND);//展开树
}
m_treeData.Expand(hRoot,TVE_EXPAND);//展开上一级树
我现在想通过点击控件某个节点,在Edit控件显示该节点的值,并可以修改设置,如何得到这个节点的信息呢?谢谢!
TV_INSERTSTRUCT TCItem;//插入数据项数据结构 TCItem.hParent=TVI_ROOT;//增加根项
TCItem.hInsertAfter=TVI_LAST;//在最后项之后
TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//设屏蔽
TCItem.item.pszText=_T("数据选择");
TCItem.item.lParam=0;//序号
TCItem.item.iImage=0;//正常图标
TCItem.item.iSelectedImage=1;//选中时图标
hRoot=m_treeData.InsertItem(&TCItem);//返回根项句柄 for(int i=0;i<4;i++){//增加各厂家
TCItem.hParent=hRoot;
TCItem.item.pszText=_T("123");
TCItem.item.lParam=(i+1)*10;//子项序号
hCur=m_treeData.InsertItem(&TCItem);
for(int j=0;j<5;j++){//增加各产品
TCItem.hParent=hCur;
TCItem.item.pszText=_T("345");
TCItem.item.lParam=(i+1)*10+(j+1);//子项序号
m_treeData.InsertItem(&TCItem);
}
m_treeData.Expand(hCur,TVE_EXPAND);//展开树
}
m_treeData.Expand(hRoot,TVE_EXPAND);//展开上一级树
我现在想通过点击控件某个节点,在Edit控件显示该节点的值,并可以修改设置,如何得到这个节点的信息呢?谢谢!
void CFreqlistDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
{ *pResult = 0;
}
void CFreqlistDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
HTREEITEM hitem;
hitem = m_treeData.GetSelectedItem();//得到的是当前的。
if (hitem != NULL)
{
m_treeData.Select(hitem, TVGN_DROPHILITE);
DWORD dw = m_treeData.GetItemData(hitem);
} *pResult = 0;
}但dw的标志永远不是当前点击的标号,而是上次点击的,这是怎么回事
还是映射这个消息比较好吧