禁用CMFCToolBar中的项目

时间:2012-02-21 10:04:21

标签: mfc mdi pack

我正在尝试升级我的MFC MDI应用程序以使用新的MFC功能包。

我将CToolbar转换为CMFCToolBar。现在我尝试在某些条件下禁用工具栏中的一个项目。我收听了项目ID的ON_UPDATE_COMMAND_UI消息,并通过编写以下内容来禁用该项目:

pCmdUI->使能(FALSE);

只有在CView对象中处理ON_UPDATE_COMMAND_UI消息但在CMFCToolbar派生类中处理时才能正常工作。

如果有办法禁用工具栏类本身的项目?

1 个答案:

答案 0 :(得分:0)

工具栏不是MFC中命令路由的一部分。因此它永远不会获得命令和更新命令UI消息。您可以在此处详细查看命令路由:MFC Command Routing

您可以在其中一个获取命令消息的对象中覆盖OnCmdMsg()方法(如上面的链接所示),并将消息传递给工具栏。