MFC:我们怎样才能轻松地从 CTreeCtrl 切换到 CTreeView?

Posted

技术标签:

【中文标题】MFC:我们怎样才能轻松地从 CTreeCtrl 切换到 CTreeView?【英文标题】:MFC: How can we switch from CTreeCtrl to CTreeView easly? 【发布时间】:2020-06-10 11:00:51 【问题描述】:

我有一个图形 MFC 应用程序,它在历史上是使用 CTreeCtrl 开发的。 我想添加一个CSplitterWnd 来改进它的图形界面。但是,我发现 CTreeCtrl 与 CSplitterWnd 不兼容。显然我必须使用CTreeView

CSplitterWnd m_wndSplitter;
// Runtime error on CreateView
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(myCTreeCtrl),CSize(100,100),pContext)) 

我的问题: 如果我切换到CTreeView,我必须开发很多功能(例如:SelectItem)

问题: 如何轻松地从 CTreeCtrl 切换到 CTreeView ? 或者我可以在CFormview 中插入一个ctreectrl,而不是CtreeView

【问题讨论】:

我认为你在这里走错了路。另外我认为如果你真的想要并且做得对,你可以将 ctreectrl 添加到拆分器。要改进 UI,请尝试使用模板项目。 @darune 好的,谢谢。我会更加坚持使用CTreeCtrl 【参考方案1】:

CTreeView 类有成员函数CTreeCtrl& GetTreeCtrl() const。替换所有出现的

SelectItem(foo);

通过

GetTreeCtrl().SelectItem(foo);

【讨论】:

以上是关于MFC:我们怎样才能轻松地从 CTreeCtrl 切换到 CTreeView?的主要内容,如果未能解决你的问题,请参考以下文章

暂停渲染/绘图 CTreeCtrl (MFC)

如何在 MFC 中处理 CTreeCtrl 的状态更改事件

MFC树控件CTreeCtrl

如何在运行时创建的 MFC 中获取 Treeview(CTreeCtrl) 的 Click 事件?

MFC控件:树形控件(CTreeCtrl)

MFC:使用CTreeCtrl和CToolbar创建一个类(CWnd?)