MFC:从 CView 访问 m_wndToolBar?
Posted
技术标签:
【中文标题】MFC:从 CView 访问 m_wndToolBar?【英文标题】:MFC: Access m_wndToolBar from CView? 【发布时间】:2019-11-15 04:22:59 【问题描述】:我需要稍微超越标准 MFC 处理启用和禁用工具栏项的方法。那部分有效并且很棒。但我有一个CTreeView
,我还需要根据在树视图上选择的内容启用/禁用工具栏项。我可以通过AfxGetMainWnd()
获得CMainFrame
指针,但m_wndToolBar
无法访问。
在 MFC 中处理此问题的推荐方法是什么?
TIA!!
【问题讨论】:
【参考方案1】:一种解决方案是简单地将GetMyToolbar
公共方法添加到您的CMainFrame
类中,这将返回指向m_wndToolBar
的指针。
CMFCToolBar* CMainFrame::GetMyToolbar()
return &m_wndToolBar;
【讨论】:
这样做工具栏没有更新。事实证明,做我需要的正确方法是在 CTreeView 中为工具栏项设置一个 UPDATE_COMMAND_UI。然后使用pCmdUI->Enable()
设置正确的状态。不错。
@df234987 我认为这是因为 doc 样式项目旨在使用 UPDATE_COMMAND_UI
机制。因此,如果您手动执行操作,它们可能会被机制覆盖。很好,你整理好了。也许添加您自己的答案。以上是关于MFC:从 CView 访问 m_wndToolBar?的主要内容,如果未能解决你的问题,请参考以下文章
MFC 功能区:CView::OnUpdate 中的 RemoveAllSubItems() 导致访问冲突 (VS2008)
CView::OnFilePrint 崩溃 MFC 应用程序
MFC 10 - 是不是可以在 CView 中有一个 CFrameWnd?