#define ID_TEST1 1001
#define ID_TEST2 1002
#define ID_TEST3 1003CTreeCTrl m_tree; //给Tree Control控件绑定一个变量//初始化
BOOL CxxDlg::OnInitDialog()
{
//Tree Control控件添加节点
m_tree.ModifyStyle(NULL, TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT);
HTREEITEM hItem = m_tree.Insert("root", NULL, NULL);
int i,j;
CString strtmp;for (i=0; i<4; i++)
{
HTREEITEM hSubItem = m_tree.Insert("item", NULL, NULL, hItem);
for (j = 0; j <3; j++)
{
strtmp.Format("%d %d",  i, j);
m_tree.Insert(strtmp, NULL, NULL, hSubItem);
}
}
}//左键单击 Tree Control 控件
void CxxDlg::OnSelectedTree1(NMHDR * pNMHDR, LRESULT * PResult)
{
//获取已选择的节点
NM_TREEVIEW * pTreeView = (NM_TREEVIEW *)pNMHDR;
HTREEITEM hItem = m_tree.GetSelectedItem();
CString strText = m_tree.GetItemText(hItem);
MessageBox(strText);*PResult = 0;
}//右键单击 Tree Control 控件
void CxxDlg::OnRclickTree1(NMHDR * pNMHDR, LRESULT * PResult)
{
//右键菜单
CMenu menuSetPara;
menuSetPara.CreatePopupMenu();
menuSetPara.AppendMenu(MF_STRING, ID_TEST1, "新增");
menuSetPara.AppendMenu(MF_STRING, ID_TEST2, "修改");
menuSetPara.AppendMenu(MF_STRING, ID_TEST3, "删除");CPoint pt;
GetCursorPos(&pt);
menuSetPara.TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this);
menuSetPara.DestroyMenu();//获取已选择的节点(获取到的是之前鼠标左键已选择的节点)
//比如之前左键已选择item1, 如果直接右击item2, 结果还是item1
NM_TREEVIEW * pTreeView = (NM_TREEVIEW *)pNMHDR;
HTREEITEM hItem = m_tree.GetSelectedItem();
CString strText = m_tree.GetItemText(hItem);
MessageBox(strText);//获取选择的菜单项目(新增/修改/删除)
//如何获取已选择的菜单项是新增或删除???*PResult = 0;
}