CTreeCtrl獲得鼠標點擊時的節點


 

原文鏈接: http://blog.csdn.net/lcalqf/article/details/21321923

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)); //獲取下一個兄弟結點結點

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM