您的位置:首页 > 其它

MFC CTreeCtr 鼠标扫过显示备注信息,双击某一节点弹出对话框

2015-10-30 21:03 537 查看
1、添加图标

HICON icon[10];

icon[0]=AfxGetApp()->LoadIcon(IDI_ICON1);

icon[1]=AfxGetApp()->LoadIcon(IDI_ICON5);

m_imagelist.Create(16,16,ILC_COLOR32| ILC_MASK,7,7);//16*16的图标,7*7为该list最多能容纳的图标数。

m_imagelist.Add(icon[0]);

m_imagelist.Add(icon[1]);

m_videotree.SetImageList(&m_imagelist,TVSIL_NORMAL);

video_root=m_videotree.InsertItem("视频",0,0,TVI_ROOT,TVI_LAST);

//第2个参数是item在添加好后的图标第3个参数为item在被选中后的图标

m_videotree.InsertItem("190515.mp4",1,1,video_root,TVI_LAST);

m_videotree.InsertItem("200515.mp4",0,0,video_root,TVI_LAST);

m_videotree.InsertItem("210515.mp4",1,1,video_root,TVI_LAST);

m_videotree.InsertItem("220515.mp4",0,0,video_root,TVI_LAST);

2、获得鼠标点击的节点值

添加树形控件的NM_CLICK消息处理,假如其相应的消息处理函数为OnClickVideoTree,树形控件的成员变量为 m_videotree

void CPlayDlg::OnClickVideoTree(NMHDR* pNMHDR, LRESULT* pResult)

{

// TODO: Add your control notification handler code here

CPoint point;

GetCursorPos(&point);//获得鼠标点击的位置

m_videotree.ScreenToClient(&point);//转化为客户坐标

UINT uFlags;

HTREEITEM CurrentItem;

CurrentItem=m_videotree.HitTest(point,&uFlags);//获得当前点击节点的ITEM

//获得该节点的父节点

// HTREEITEM ParentItem=m_videotree.GetParentItem(CurrentItem);

CurrentVideo=m_videotree.GetItemText(CurrentItem) ;//获得节点值

}

3、树形控件操作相关函数

ItemHasChildren(hParent)

//判断结点是否有子结点

hItem=GetChildItem(hParent); //获取第一个子结点

hItem=GetNextSiblingItem(hItem)); //获取下一个兄弟结点结点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: