MFC控制树

简介

GetContextMenuManager()->AddMenu();添加自定义菜单

上句主要是在C_App的PreLoadState()中调用,预先加载好所需要的右键快捷菜单

 GetContextMenuManager()->ShowPopupMenu()显示自定义菜单。

在加载好右键快捷菜单之后,当需要显示时,直接调用

注:GetContextMenuManager()是CWinAppEx的类方法

控制树部分:

CDockablePane是一个通用窗口容器,它主要有两个用途:在一个框架中悬浮或者停靠窗口,MFC默认生成的文件控制窗口CFileView,就是CDockablePane的派生类;可以在CDockablePane派生类中加对话框对象,实现在该容器中存放一个窗口。

CFileView中有CViewTree,CViewTree只是CTreeCtrl的简单封装,控制树节点控制等等,都是封装在CTreeCtrl中。

控制树详细控制:

http://blog.csdn.net/wang15061955806/article/details/51820385

http://blog.csdn.net/bruce_zeng/article/details/8046098

例子:

http://blog.csdn.net/qq_23992597/article/details/51395957

其中对于树的鼠标响应消息有两个:NM_CLICK、TVN_SELCHANGED,两者的区别参考:

https://blog.csdn.net/pipi0714/article/details/23439861

MFC默认生成的有文件控制树(CFileView)、类控制树(CClassView),二者被定义为CMainFrame成员,在CMainFrame源文件中完成定义,

在CreateDockingWindows()中完成create,

在SetDockingWindowIcons()中添加图标,

在OnCreate()中完成绑定,Create()函数中定义如下:

m_wndFileView.EnableDocking(CBRS_ALIGN_ANY);
m_wndClassView.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndFileView);
DockPane(&m_wndClassView);
CDockablePane* pTabbedBar = NULL;

m_wndClassView.AttachToTabWnd(&m_wndFileView, DM_SHOW, TRUE, &pTabbedBar);

 

一个例子

该例子是某位大佬做的,工程是基于对话框的MFC工程,,其效果图如下:

大致思路:首先创建一个类VividTree,该类是CTreeCtrl派生类;为该对话框插入Tree Control控件,为该控件绑定变量(m_tree),其类型为VividTree(代码为DDX_Control(pDX, IDC_TREETEST, m_tree)),之后该控制树的背景设置、子树插入等等操作都通过m_tree变量操作。

源代码:https://www.codeproject.com/Articles/11722/VividTree-A-Colorful-and-Picturesque-Owner-Drawn-C

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值