MFC树形控件点击右键添加节点 怎么做到?

2024-11-17 08:19:39
推荐回答(2个)
回答1:

1.在资源编辑器中右键单击你的树形控件,事件,然后选择NM_RCLICK,双纯模击它,确定,就添加了树形控件的消息响应,然后找到对应的消息响应处理函数,如下是我的例子:
void CViewTreeBase::OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult)
{
UNREFERENCED_PARAMETER(pNMHDR);
CPoint point;
GetCursorPos(&point);
ScreenToClient(&point);
UINT uFlags = 0;
HTREEITEM click = HitTest(point, &uFlags);
//click和uFlags能定位你单击的具体项目,参看参考资料。
//在这里你可以进行你的添加节点的操作,相信你会天际节点。如果需要添加菜单,你可以搜搜右键添加宽败菜单,然后在这里弹出菜单。具体的,看你需求,再做解答。
}

2.也可以自己派生一个类,慎裤颤继承于CTreeCtr,从类向导中进行添加1中消息,如上的例子是我派生的类。

回答2:

这里拿灶分三个盯知步骤:
1·响应右键消息,这个在ClassWizard里面实现
2·实现弹出菜凯敏消单,需要资源里面建一个新的popMenu,然后在1中的响应函数中,参考类和函数CMenu::LoadMenu() TrackPopupMenu()
3·响应菜单消息,并在响应函数中CTreeCtrl::GetSelectedItem() InsertItem()