void CTreeViewDlg::OnNMRclickTree1(NMHDR *pNMHDR, LRESULT *pResult) { CPoint ptMouse; DWORD dwPos; UINT nFlags; CTreeCtrl *pTreeCtrl; pTreeCtrl = (CTreeCtrl *)GetDlgItem(IDC_TREE1); { dwPos = ::GetMessagePos(); ptMouse.x = LOWORD (dwPos); ptMouse.y = HIWORD (dwPos); CPoint ptAction = ptMouse; // convert coordinates pTreeCtrl->ScreenToClient(&ptAction); // determine if click is on tree item HTREEITEM hItemRClick = pTreeCtrl->HitTest(ptAction, &nFlags); // if click is on tree item, if (hItemRClick != NULL) { // set selection to right+clicked item pTreeCtrl->SelectItem(hItemRClick); HMENU hMenu = LoadMenu(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MENU1)); if(hMenu) { hMenu = GetSubMenu(hMenu,1); if(hMenu) { TrackPopupMenu(hMenu,0,ptMouse.x,ptMouse.y,0,pTreeCtrl->m_hWnd,NULL); } } } } *pResult = 0; } i have done something like this Noe the pop up menu is poping up but whenever i click on something it does not go to respective handler!! Thanks and regards Harshal