16,472
社区成员
发帖
与我相关
我的任务
分享
struct TreeItemMap
{
HTREEITEM m_item;
int m_subitem_id;
CString m_subitem_name;
};
//初始化树
void CTestPrepareDlg::InitModelTree()
{
TreeItemMap map;
HTREEITEM root = m_model_tree.InsertItem(_T("root"),TVI_ROOT);
HTREEITEM sub1 = m_model_tree.InsertItem(_T("sub1"),root,TVI_LAST);
HTREEITEM itemaaa = m_model_tree.InsertItem(_T("aaa"),sub1,TVI_LAST);
HTREEITEM itembbb = m_model_tree.InsertItem(_T("bbb"),sub1,TVI_LAST);
map.m_item = itembbb;
map.m_subitem_id = 100;
map.m_subitem_name = _T("bbb");
m_tree_map.push_back(map);
map.m_item = itemaaa;
map.m_subitem_id = 101;
map.m_subitem_name = _T("eee");
m_tree_map.push_back(map);
HTREEITEM sub2 = m_model_tree.InsertItem(_T("sub1"),root,sub1);
m_model_tree.Expand(root,TVE_EXPAND);
}
/右键树叶子节点弹出编辑菜单
void CTestPrepareDlg::OnNMRClickTreeModel(NMHDR *pNMHDR, LRESULT *pResult)
{
//TODO:判断是否为叶子节点,是则弹出,否则不弹出
TVHITTESTINFO* pHitTestInfo = new TVHITTESTINFO;
::GetCursorPos(&(pHitTestInfo->pt));
HTREEITEM hItem = m_model_tree.HitTest(pHitTestInfo);
m_popup_tree.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON,
pHitTestInfo->pt.x, pHitTestInfo->pt.y, this);
*pResult = 0;
}