CTree 的使用

//从资源视图中加载位图
	CBitmap   bmp1; 
	m_ImageList.Create(16,16,ILC_COLOR32 | ILC_MASK,2,6);  //不能少
	bmp1.LoadBitmap(IDB_BITMAP1); 	
	m_ImageList.Add(&bmp1,  RGB(192,192,192)); 
	bmp1.DeleteObject();						 //必须的,不然出错
	bmp1.LoadBitmap(IDB_BITMAP2); 	
	m_ImageList.Add(&bmp1,  RGB(192,192,192)); 
	bmp1.DeleteObject();
	//设置CTreeCtrl对象与图像列表关联
	m_Tree.SetImageList(&m_ImageList,TVSIL_NORMAL );

	//插入节点并扩展显示
	HTREEITEM m_hroot;
	m_Tree.SetBkColor(RGB(192,192,192));   //设置背景颜色
	m_hroot=m_Tree.InsertItem(_T("华御大厦"),1,1);
	m_Tree.InsertItem(_T("1楼"),0,0,m_hroot);
	m_Tree.InsertItem(_T("2楼"),0,0,m_hroot);
	m_Tree.InsertItem(_T("3楼"),0,0,m_hroot);	
	m_Tree.Expand(m_hroot,TVE_EXPAND);
控件响应NM_CLICK消息。
void C树Dlg::OnNMRclickTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
	CPoint pt;
	GetCursorPos(&pt);
	m_Tree.ScreenToClient(&pt);

	HTREEITEM item=m_Tree.HitTest(pt);   //HitTest函数能够得到与当前鼠标位置相关的项
	m_Tree.Select(item,TVGN_CARET);
	CMenu menu, *pMenu;
	menu.LoadMenu(IDR_MENU1);
	if (m_Tree.GetItemText(item)=="华御大厦")
	{
		//显示菜单
		pMenu = menu.GetSubMenu(0);
		m_Tree.ClientToScreen(&pt);
		pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this);
	}
	else if(m_Tree.GetItemText(item)!="")
	{
		//显示菜单
		pMenu = menu.GetSubMenu(1);
		m_Tree.ClientToScreen(&pt);
		pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this);
	}

		// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;
}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值