15,979
社区成员
发帖
与我相关
我的任务
分享
void CDlgTestDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: 在此处添加消息处理程序代码
if (pWnd && (pWnd->GetDlgCtrlID() == IDC_TREE1))
{
CTreeCtrl* pTree = reinterpret_cast<CTreeCtrl*>(pWnd);
CPoint ptTree(point);
pTree->ScreenToClient(&ptTree);
UINT nFlags;
HTREEITEM hItem = pTree->HitTest(ptTree, &nFlags);
if (hItem && (nFlags & TVHT_ONITEMLABEL))
{
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pSubMenu = NULL;
if (NULL == pTree->GetParentItem(hItem)) // 根节点
{
pSubMenu = menu.GetSubMenu(0);
}
else // 子节点
{
pSubMenu = menu.GetSubMenu(1);
}
if (pSubMenu)
pSubMenu->TrackPopupMenu(0, point.x, point.y, pWnd);
}
}
}