在 CMFCToolBar 中禁用项目
Posted
技术标签:
【中文标题】在 CMFCToolBar 中禁用项目【英文标题】:Disable item in CMFCToolBar 【发布时间】:2012-02-21 10:04:20 【问题描述】:我正在尝试升级我的 MFC MDI 应用程序以使用新的 MFC 功能包。
我将 CToolbar 转换为 CMFCToolBar。现在我试图在某些条件下禁用工具栏中的一项。我听取了项目 ID 的 ON_UPDATE_COMMAND_UI 消息并通过编写以下内容禁用了该项目:
pCmdUI->启用(FALSE);
仅当 ON_UPDATE_COMMAND_UI 消息在 CView 对象中处理但在 CMFCToolbar 派生类中处理时,此方法才能完美运行。
是否有办法从工具栏类本身禁用项目?
【问题讨论】:
【参考方案1】:工具栏不是 MFC 中命令路由的一部分。所以它永远不会得到命令和更新命令 UI 消息。详细的命令路由可以看这里:MFC Command Routing
您可以在其中一个获取命令消息的对象中覆盖 OnCmdMsg() 方法(如您在上面的链接中所见)并将消息传递到工具栏。
【讨论】:
以上是关于在 CMFCToolBar 中禁用项目的主要内容,如果未能解决你的问题,请参考以下文章
如何在动态创建的 CMFCToolbar 的 ToolTip 中添加描述?