我想生成一个上下文菜单,但我需要知道放在哪里,所以我需要当前所选节点的坐标。
答案 0 :(得分:1)
使用CTreeCtrl::GetItemRect()
。这将说明树节点的矩形。
答案 1 :(得分:-1)
您可以在treeclick事件中使用'GetCursorPos'和'HitTest方法来显示上下文菜单。
//在这里,我想要在鼠标右键显示菜单
void MyDialog :: OnRclickTree(NMHDR * pNMHDR,LRESULT * pResult) {
CPoint CurPos;
GetCursorPos(安培; CURPOS);
CPoint CurP = CurPos;
m_pwTree.ScreenToClient(& CurPos); // m_pwTree是CTreeCtrl类的对象
UINT nFlags;
HTREEITEM htItem = m_pwTree.HitTest(CurPos,& nFlags);
if(htItem!= NULL){
CMenu菜单;
CMenu * pContextMenu;
menu.LoadMenu(IDR_MyMenu)//加载适当的菜单
pContextMenu = menu.GetSubMenu(0); pContextMenu-> TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,CurP.x,CurP.y,此,0); }
}