【问题标题】:MFC: Access m_wndToolBar from CView?MFC:从 CView 访问 m_wndToolBar?
【发布时间】:2019-11-15 04:22:59
【问题描述】:

我需要稍微超越标准 MFC 处理启用和禁用工具栏项的方法。那部分有效并且很棒。但我有一个CTreeView,我还需要根据在树视图上选择的内容启用/禁用工具栏项。我可以通过AfxGetMainWnd() 获得CMainFrame 指针,但m_wndToolBar 无法访问。

在 MFC 中处理此问题的推荐方法是什么?

TIA!!

【问题讨论】:

    标签: mfc


    【解决方案1】:

    一种解决方案是简单地将GetMyToolbar 公共方法添加到您的CMainFrame 类中,这将返回指向m_wndToolBar 的指针。

    CMFCToolBar* CMainFrame::GetMyToolbar()
    {
       return &m_wndToolBar;
    }
    

    【讨论】:

    • 这样做工具栏没有更新。事实证明,做我需要的正确方法是在 CTreeView 中为工具栏项设置一个 UPDATE_COMMAND_UI。然后使用pCmdUI->Enable() 设置正确的状态。不错。
    • @df234987 我认为这是因为 doc 样式项目旨在使用 UPDATE_COMMAND_UI 机制。因此,如果您手动执行操作,它们可能会被机制覆盖。很好,你整理好了。也许添加您自己的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多