MFC树视图控件(Tree Control)

树视图控件的主要方法。见(P207-P211)

树视图的主要事件(Ctrl+W     Message maps事件)


1、创建一个基于对话框的应用程序。

2、向对话框中添加1个树视图控件,为其添加变量m_Tree(Ctrl+W下的 Member Variable(成员变量函数))。

3、向工程导入3个ICO图标。

4、头文件中声明变量,代码如下

class CTreeDlg : public CDialog中添加下列代码
	CImageList m_ImageList;
	CString Text;
	HTREEITEM m_Root,m_Child1,m_Child2;
5、在OnInitDialog函数中为树视图控件插入数据,代码如下:

BOOL CTreeDlg::OnInitDialog()
{
......................
	// TODO: Add extra initialization here
	m_ImageList.Create(16,16,ILC_MASK,4,1);
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
	HICON hIcon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
	m_Tree.SetImageList(&m_ImageList,LVSIL_NORMAL);
	m_Root = m_Tree.InsertItem("学校",0,0);
	m_Child1 = m_Tree.InsertItem("一年级",1,1,m_Root);//插入节点
	m_Child2 = m_Tree.InsertItem("龙马",2,2,m_Child1);
	m_Child1 = m_Tree.InsertItem("二年级",1,1,m_Root);
	m_Child2 = m_Tree.InsertItem("海棠",2,2,m_Child1);
	m_Child2 = m_Tree.InsertItem("桃城",2,2,m_Child1);
	m_Child1 = m_Tree.InsertItem("三年级",1,1,m_Root);
	m_Child2 = m_Tree.InsertItem("周助",2,2,m_Child1);
	m_Child2 = m_Tree.InsertItem("英二",2,2,m_Child1);
	m_Child2 = m_Tree.InsertItem("河村",2,2,m_Child1);
	m_Tree.Expand(m_Root,TVE_EXPAND);
	
}
6、处理事件(在对话框中添加事件TVN_SELCHANGED事件),在节点改变后获得节点文本,代码如下

void CTreeDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	m_Root = m_Tree.GetSelectedItem();//该方法用于获得树视图控件当前选中的节点。
	Text = m_Tree.GetItemText(m_Root);//改方法用于获取节点文本
	*pResult = 0;
}
7、处理事件(在对话框中添加事件TVN_ENDLABELEDIT事件),在节点显示文本,代码如下

void CTreeDlg::OnEndlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
	// TODO: Add your control notification handler code here
	m_Tree.SetItemText(pTVDispInfo->item.hItem,pTVDispInfo->item.pszText);//该方法用于设置节点文本。
	*pResult = 0;
}




  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值