MFC中tree control
2013-09-27 09:11
239 查看
一、添加节点:
HTREEITEM hitem=m_tree.InsertItem(_T("root"), NULL, NULL);//添加根节点root,root就是节点的标题
for(int i=0; i<4; i++)
{
HTREEITEM hsubitem=m_tree.InsertItem(_T("subitem"), NULL, NULL, hitem);
}
插入四个子节点,其父节点句柄为hitem,子节点的标题为subitem
m_tree.ModifyStyle(NULL, TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT);//在初始化函数BOOL CTree_ctlDlg::OnInitDialog()中,设定控件树的样式
二、删除节点:
三、为选中项添加子节点:
四、修改MFC生成的exe文件的图标
最终生成的可执行文件的图标已经在构造函数中自动指定。要想改变图标,需要在构造函数中修改以下语句:
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);//指定的图标
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
五、树形控件节点添加图标
树节点需要图标时, 必须先创建一个CImageList类的对象(在.h中创建public类型), 并为其添加多个图像组成
一个图像序列,然后调用SetImageList函数为树形控件设置图像序列,再用InsetItem函数插入节点时传入所需图像
在图像序列中的索引即可。
例子如下所示:
hRoot=m_webtree.InsertItem(_T("鸡啄米"), 0, 0);//插入根节点,标题为鸡啄米,第二个参数0表示根节点的图标在图像列表中的索引,
[/code]
InsetItem函数的原型为:
HTREEITEM InsetItem(LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent=TVI_ROOT, HTREEITEM hInsetAfter=TVI_LAST);
参数lpszItem为新节点的标签文本字符串的指针, 参数nImage为新节点的图标在树形控件图像序列中的索引
参数nSelectedImage为新节点被选中时的图标在图像列表中的索引,参数hParent为插入节点的父节点的句柄,
参数hInsertAfter为新节点的前一个节点的句柄,即新节点将被插入到hInsertAfter节点之后。
HTREEITEM hitem=m_tree.InsertItem(_T("root"), NULL, NULL); for(int i=0; i<4; i++) { HTREEITEM hsubitem=m_tree.InsertItem(_T("subitem"), NULL, NULL, hitem); }
HTREEITEM hitem=m_tree.InsertItem(_T("root"), NULL, NULL);//添加根节点root,root就是节点的标题
for(int i=0; i<4; i++) { HTREEITEM hsubitem=m_tree.InsertItem(_T("subitem"), NULL, NULL, hitem); }
for(int i=0; i<4; i++)
{
HTREEITEM hsubitem=m_tree.InsertItem(_T("subitem"), NULL, NULL, hitem);
}
插入四个子节点,其父节点句柄为hitem,子节点的标题为subitem
m_tree.ModifyStyle(NULL, TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT);//在初始化函数BOOL CTree_ctlDlg::OnInitDialog()中,设定控件树的样式
二、删除节点:
HTREEITEM hitem; hitem=m_tree.GetSelectedItem();//获取选中项节点的句柄 //m_tree.SelectItem(hitem); CString strname; strname=m_tree.GetItemText(hitem);//获取该句柄节点的标题 if(hitem != NULL)//若获取句柄成功,弹出提示框 { ::MessageBoxA(NULL, (LPCSTR)("selected"), (LPCSTR)("Tips"), MB_OK); } m_tree.DeleteItem(hitem);//删除该节点
三、为选中项添加子节点:
HTREEITEM hitem; hitem=m_tree.GetSelectedItem();//获取选中节点的句柄 HTREEITEM subitem=NULL;//定义一个新句柄并初始化,用来保存新增子节点的句柄 subitem=m_tree.InsertItem(_T("sub+1"), NULL, NULL, hitem);//为hitem的节点添加子节点,标题为sub+1
四、修改MFC生成的exe文件的图标
最终生成的可执行文件的图标已经在构造函数中自动指定。要想改变图标,需要在构造函数中修改以下语句:
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);//指定的图标
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
五、树形控件节点添加图标
树节点需要图标时, 必须先创建一个CImageList类的对象(在.h中创建public类型), 并为其添加多个图像组成
一个图像序列,然后调用SetImageList函数为树形控件设置图像序列,再用InsetItem函数插入节点时传入所需图像
在图像序列中的索引即可。
例子如下所示:
HICON hicon[3];//图标句柄数组 HTREEITEM hRoot; HTREEITEM hCataItem; HTREEITEM hArtItem; hicon[0]=theApp.LoadIconW(IDI_WEB_ICON);//加载三个图标,并将它们的句柄保存到数组中 hicon[1]=theApp.LoadIconW(IDI_CATALOG_ICON); hicon[2]=theApp.LoadIconW(IDI_ARTICLE_ICON); //CImageList m_imageList; m_imageList.Create(32, 32, ILC_COLOR32, 3, 3);//创建图像序列对象
for(int i=0; i<3;i++) { m_imageList.Add(hicon[i]);//将三个图标添加到图像序列 } m_webtree.SetImageList(&m_imageList, TVSIL_NORMAL);//为树形控件设置图像序列
hRoot=m_webtree.InsertItem(_T("鸡啄米"), 0, 0);//插入根节点,标题为鸡啄米,第二个参数0表示根节点的图标在图像列表中的索引,
[/code]
//第三个参数0表示根节点在选中的图标在图像列表中的索引
InsetItem函数的原型为:
HTREEITEM InsetItem(LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent=TVI_ROOT, HTREEITEM hInsetAfter=TVI_LAST);
参数lpszItem为新节点的标签文本字符串的指针, 参数nImage为新节点的图标在树形控件图像序列中的索引
参数nSelectedImage为新节点被选中时的图标在图像列表中的索引,参数hParent为插入节点的父节点的句柄,
参数hInsertAfter为新节点的前一个节点的句柄,即新节点将被插入到hInsertAfter节点之后。
相关文章推荐
- (在做报文编辑器时右键菜单老不出来)This article explains how to display a context menu for a tree control in MFC
- MFC列表控件ListControl和树控件TreeControl
- MFC 查找tree control 的 item
- MFC Tree Control的使用
- MFC控件(6):Tree Control
- MFC CreateTreeControl
- MFC列表控件ListControl和树控件TreeControl
- MFC-两个基本控件:TreeControl以及RichControl
- 递归实现MFC TreeControl动态建树
- MFC Tree Control 控件使用
- MFC之树形控件Tree Control
- MFC获取Tree Control当前选择的值
- MFC Tree Control对鼠标右击的响应.
- MFC列表控件ListControl和树控件TreeControl
- MFC控件(四)(树视图控件TreeControl)
- MFC列表控件ListControl和树控件TreeControl
- MFC树视图控件(Tree Control)
- MFC Tree Control控件使用
- MFC TreeControl为复选框添加响应函数
- 在MFC中用halcon读图像,显示在主窗口和picture control中