我正在尝试升级我的MFC MDI应用程序以使用新的MFC功能包。
我将CToolbar转换为CMFCToolBar。现在我尝试在某些条件下禁用工具栏中的一个项目。我收听了项目ID的ON_UPDATE_COMMAND_UI消息,并通过编写以下内容来禁用该项目:
pCmdUI->使能(FALSE);
只有在CView对象中处理ON_UPDATE_COMMAND_UI消息但在CMFCToolbar派生类中处理时才能正常工作。
如果有办法禁用工具栏类本身的项目?
答案 0 :(得分:0)
工具栏不是MFC中命令路由的一部分。因此它永远不会获得命令和更新命令UI消息。您可以在此处详细查看命令路由:MFC Command Routing
您可以在其中一个获取命令消息的对象中覆盖OnCmdMsg()方法(如上面的链接所示),并将消息传递给工具栏。