mfc CTreeCtrl 添加节点 和绑定图标
2016-11-24 20:07
369 查看
1、添加控件并绑定变量
1、修改属性Line At Root为True Has Bootons改成True 使节点有加减号(展开和收缩)
3、初始化函数中如下:
TVINSERTSTRUCT tvInsert;
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("Tagge Card");
HTREEITEM selTreeRoot = m_selTreeCtrl.InsertItem(&tvInsert); //添加根节点
tvInsert.hParent = selTreeRoot;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("TG-550C(PCI)d");
HTREEITEM pciItem = m_selTreeCtrl.InsertItem(&tvInsert);
m_selTreeCtrl.SetItemData(pciItem,0);
tvInsert.hParent = selTreeRoot;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("TG-550FCPCI)");
HTREEITEM cpciItem = m_selTreeCtrl.InsertItem(&tvInsert);
m_selTreeCtrl.SetItemData(cpciItem,1);
CString str;
CString str2;
for(int i=0;i<4;i++)
{
tvInsert.hParent = pciItem;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
str2.Format(_T("%d"),i);
str = "通道:";
str += str2;
tvInsert.item.pszText = str.GetBuffer();
HTREEITEM
typeNodeName = m_selTreeCtrl.InsertItem(&tvInsert);
m_selTreeCtrl.SetItemData(typeNodeName, i);
}
for(int i=0;i<4;i++)
{
tvInsert.hParent = cpciItem;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
str2.Format(_T("%d"),i);
str = "通道:";
str += str2;
tvInsert.item.pszText = str.GetBuffer();
HTREEITEM
typeNodeName = m_selTreeCtrl.InsertItem(&tvInsert);
m_selTreeCtrl.SetItemData(typeNodeName, i);
}
m_selTreeCtrl.Expand(m_selTreeCtrl.GetRootItem(),TVE_EXPAND); //根节点展开
获取选择树的那个节点
void selectPanel::OnBnClickedOk()
{
//CTreeCtrl* selTreeCtrl = (CTreeCtrl*)GetDlgItem(IDC_SELECT_TREE);
HTREEITEM sItem = m_selTreeCtrl.GetSelectedItem();
HTREEITEM
sParItem = m_selTreeCtrl.GetParentItem(sItem);
HTREEITEM
sGraItem = m_selTreeCtrl.GetParentItem(sParItem);
CComboBox* hCarNo = (CComboBox*)GetDlgItem(IDC_COMBO1);
if(sGraItem == m_selTreeCtrl.GetRootItem()) //Tagge Card
{
int vCarNO = hCarNo->GetCurSel();
int typeVal = m_selTreeCtrl.GetItemData(sParItem); //获取所在的这一层的索引
int channelVal = m_selTreeCtrl.GetItemData(sItem);
int test =10;
}
}
//绑定节点
bcTreeCtrl->SetItemData(typeNodeName, 32); //typeNodeName 节点
//获取节点绑定的值
int num = bcTreeCtrl->GetItemData(typeNodeName);
二、绑定图标
1、添加图标资源
2、绑定CtreeTtrl和CImageList代码如下:
DWORD Rgb = GetSysColor(COLOR_WINDOW);
m_imageList.Create(20,20,ILC_COLOR24|iLC_MASK,0,0);//m_imageList类型CImageList
m_bm[0].LoadBitmap(资源ID1);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[1].LoadBitmap(资源ID2);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[2].LoadBitmap(资源ID2);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[3].LoadBitmap(资源ID3);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[4].LoadBitmap(资源ID4);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[5].LoadBitmap(资源ID4);
m_imageList.Add(&m_bm[0],Rgb);
m_wndTree.SetImageList(&m_imageList, TVSIL_NORMAL);//m_wndTree为CtreeCtrl
3、添加图标,代码如下:
CString str = _T("设备");
HTREETEM hRoot = m_wndTree.InsertItem(str ,3,3);//添加which图标
1、修改属性Line At Root为True Has Bootons改成True 使节点有加减号(展开和收缩)
3、初始化函数中如下:
TVINSERTSTRUCT tvInsert;
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("Tagge Card");
HTREEITEM selTreeRoot = m_selTreeCtrl.InsertItem(&tvInsert); //添加根节点
tvInsert.hParent = selTreeRoot;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("TG-550C(PCI)d");
HTREEITEM pciItem = m_selTreeCtrl.InsertItem(&tvInsert);
m_selTreeCtrl.SetItemData(pciItem,0);
tvInsert.hParent = selTreeRoot;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("TG-550FCPCI)");
HTREEITEM cpciItem = m_selTreeCtrl.InsertItem(&tvInsert);
m_selTreeCtrl.SetItemData(cpciItem,1);
CString str;
CString str2;
for(int i=0;i<4;i++)
{
tvInsert.hParent = pciItem;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
str2.Format(_T("%d"),i);
str = "通道:";
str += str2;
tvInsert.item.pszText = str.GetBuffer();
HTREEITEM
typeNodeName = m_selTreeCtrl.InsertItem(&tvInsert);
m_selTreeCtrl.SetItemData(typeNodeName, i);
}
for(int i=0;i<4;i++)
{
tvInsert.hParent = cpciItem;
tvInsert.hInsertAfter = TVI_LAST;
tvInsert.item.mask = TVIF_TEXT;
str2.Format(_T("%d"),i);
str = "通道:";
str += str2;
tvInsert.item.pszText = str.GetBuffer();
HTREEITEM
typeNodeName = m_selTreeCtrl.InsertItem(&tvInsert);
m_selTreeCtrl.SetItemData(typeNodeName, i);
}
m_selTreeCtrl.Expand(m_selTreeCtrl.GetRootItem(),TVE_EXPAND); //根节点展开
获取选择树的那个节点
void selectPanel::OnBnClickedOk()
{
//CTreeCtrl* selTreeCtrl = (CTreeCtrl*)GetDlgItem(IDC_SELECT_TREE);
HTREEITEM sItem = m_selTreeCtrl.GetSelectedItem();
HTREEITEM
sParItem = m_selTreeCtrl.GetParentItem(sItem);
HTREEITEM
sGraItem = m_selTreeCtrl.GetParentItem(sParItem);
CComboBox* hCarNo = (CComboBox*)GetDlgItem(IDC_COMBO1);
if(sGraItem == m_selTreeCtrl.GetRootItem()) //Tagge Card
{
int vCarNO = hCarNo->GetCurSel();
int typeVal = m_selTreeCtrl.GetItemData(sParItem); //获取所在的这一层的索引
int channelVal = m_selTreeCtrl.GetItemData(sItem);
int test =10;
}
}
//绑定节点
bcTreeCtrl->SetItemData(typeNodeName, 32); //typeNodeName 节点
//获取节点绑定的值
int num = bcTreeCtrl->GetItemData(typeNodeName);
二、绑定图标
1、添加图标资源
2、绑定CtreeTtrl和CImageList代码如下:
DWORD Rgb = GetSysColor(COLOR_WINDOW);
m_imageList.Create(20,20,ILC_COLOR24|iLC_MASK,0,0);//m_imageList类型CImageList
m_bm[0].LoadBitmap(资源ID1);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[1].LoadBitmap(资源ID2);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[2].LoadBitmap(资源ID2);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[3].LoadBitmap(资源ID3);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[4].LoadBitmap(资源ID4);
m_imageList.Add(&m_bm[0],Rgb);
m_bm[5].LoadBitmap(资源ID4);
m_imageList.Add(&m_bm[0],Rgb);
m_wndTree.SetImageList(&m_imageList, TVSIL_NORMAL);//m_wndTree为CtreeCtrl
3、添加图标,代码如下:
CString str = _T("设备");
HTREETEM hRoot = m_wndTree.InsertItem(str ,3,3);//添加which图标
相关文章推荐
- mfc CtreeCtrl上添加图标、将一个对话框放在另一个对话框上、CTreeCtrl响应不同的节点
- 在CTreeCtrl控件创建节点时添加ICON图标
- MFC中CTreeCtrl使用(二) 添加子节点不显示,选择兄弟节点,自身子节点隐藏
- 在CTreeCtrl控件创建节点时添加ICON图标的代码意义
- MFC树控件CTreeCtrl中为每个item节点动态添加提示信息,并定时更新提示内容
- VC下ctreectrl的使用方法及节点前图标添加方法
- VC下ctreectrl的使用方法及节点前图标添加方法
- MFC制作一个可自由添加删除节点的树(CTreeCtrl)类
- mfc在CTreeCtrl上添加文件夹图标和文件目录的选择
- [置顶] MFC树形控件CTreeCtrl使用方法、遍历、SetCheck无效、根据名称获取节点、获取选中节点等问题
- js动态添加的节点 绑定时间不响应原因
- MFC如何在自定义对话框中添加系统图标?
- JS实现动态绑定单击事件给节点添加样式
- CtreeCtrl节点展开关闭切换图标
- 管理员与命名空间绑定、只能运行一个事例、MFC改变图标
- MFC将程序添加到系统图标栏,系统托盘栏
- MFC CtreeCtrl 节点的遍历
- echarts 节点添加绑定事件
- MFC添加位图按钮,MFC添加图标按钮,mfc按钮添加图片
- 树的操作(绑定数据库,添加新节点,删除节点)(转载加实现)