一、添加节点:
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表示根节点的图标在图像列表中的索引,
//第三个参数0表示根节点在选中的图标在图像列表中的索引
HTREEITEM InsetItem(LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent=TVI_ROOT, HTREEITEM hInsetAfter=TVI_LAST);
参数lpszItem为新节点的标签文本字符串的指针, 参数nImage为新节点的图标在树形控件图像序列中的索引
参数nSelectedImage为新节点被选中时的图标在图像列表中的索引,参数hParent为插入节点的父节点的句柄,
参数hInsertAfter为新节点的前一个节点的句柄,即新节点将被插入到hInsertAfter节点之后。