如何让CTreeCtrl对鼠标右键响应

theme2002 2017-03-31 12:20:39
我搜了好多例子,但没有一个是说的很明白的,大多是针对性问题。所以我在这里想问一下大家。
首先我在OnInitialUpdate函数里Create了CTreeCtrl控件,没有在资源里添加。
在CView属性里我能找到WM_RBUTTONDBLCLK,WM_RBUTTONDOWN,WM_RBUTTONUP三个事件。
如果在后两个事件中写响应,那么我想,这需要首先获取控件是否被激活,被选择的Item,然后再来弹出下拉菜单。
另外我又想,如果写个CTreeCtrl继承类,把事件直接封装到里面好像也可以。
但上面这两者好像都不怎么可取。所以我想问下有没有什么办法能够更简单的为控件建立一个右键响应菜单。
以下是我的代码。
void CTPToolView::OnInitialUpdate()
{
CView::OnInitialUpdate();

// TODO: Add your specialized code here and/or call the base class
pTestList->Create(WS_VISIBLE|TVS_DISABLEDRAGDROP|WS_CHILD|WS_BORDER|TVS_HASLINES|TVS_HASBUTTONS|TVS_SHOWSELALWAYS|TVS_EDITLABELS,CRect(0,0,200,400),this,1);
pTestList->SetTextColor(RGB(0,0,255));
pTestList->ModifyStyle(0L,TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS);

pTestList->DeleteAllItems();
ctrlRoot = pTestList->InsertItem("目录",0,0,TVI_ROOT);

}
...全文
161 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2017-03-31
  • 打赏
  • 举报
回复
从 CTreeCtrl 派生新类, 然后处理 WM_CONTEXTMENU 消息

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧