大家看看,怎么实现组合框中列表项和树结构中的节点对应
大家看看,如何实现组合框中列表项和树结构中的节点对应?
功能具体说就是在组合框中鼠标点击一项,完了对应数结构的节点显示出来,过滤删掉其他不相关的节点。比如:
组合框
void CFirstDlg::OnCbnSelchangeComboMtype()
{
if (m_nMethodType == 0)
MessageBox( "aaa ");
else if (m_nMethodType == 1)
MessageBox( "bbb ");
else
MessageBox( "ccc ");
}
树结构
+aaa
+bbb
+ccc
当我在组合框下单击“aaa”时,数结构aaa节点展开,bbb、ccc节点隐藏。点击bbb时其它节点隐藏。我说清楚了没?
我是新手,大家帮忙看看这个代码怎么写?谢谢
------解决方案--------------------
楼主的把树节点的展开收缩写在一个函数里,通过参数决定展开哪一个节点
例如这个函数是Func(int nodeid)
然后在组合框里也调用这个函数就行了
------解决方案--------------------
前提:
假若树控件初始化项时,每增加个项都加入下面的代码
m_treeCtrl.SetItemData(index,[INT]);
[INT]值注意同组合框中的对应值关联....
在为组合框增加项时需要下面的代码
m_cmbCtrl.SetItemData(index,[INT]);
当选中组合框的一项时
INT curID = m_cmbCtrl.GetItemData(m_cmbCtrl.GetCurSel());
在树控件中
for(...)
curID1 = m_treeCtrl.GetItemData(树当前选择);
if(curID1 != curID)
删除树此结点项
功能具体说就是在组合框中鼠标点击一项,完了对应数结构的节点显示出来,过滤删掉其他不相关的节点。比如:
组合框
void CFirstDlg::OnCbnSelchangeComboMtype()
{
if (m_nMethodType == 0)
MessageBox( "aaa ");
else if (m_nMethodType == 1)
MessageBox( "bbb ");
else
MessageBox( "ccc ");
}
树结构
+aaa
+bbb
+ccc
当我在组合框下单击“aaa”时,数结构aaa节点展开,bbb、ccc节点隐藏。点击bbb时其它节点隐藏。我说清楚了没?
我是新手,大家帮忙看看这个代码怎么写?谢谢
------解决方案--------------------
楼主的把树节点的展开收缩写在一个函数里,通过参数决定展开哪一个节点
例如这个函数是Func(int nodeid)
然后在组合框里也调用这个函数就行了
------解决方案--------------------
前提:
假若树控件初始化项时,每增加个项都加入下面的代码
m_treeCtrl.SetItemData(index,[INT]);
[INT]值注意同组合框中的对应值关联....
在为组合框增加项时需要下面的代码
m_cmbCtrl.SetItemData(index,[INT]);
当选中组合框的一项时
INT curID = m_cmbCtrl.GetItemData(m_cmbCtrl.GetCurSel());
在树控件中
for(...)
curID1 = m_treeCtrl.GetItemData(树当前选择);
if(curID1 != curID)
删除树此结点项