2012-02-21 95 views
0

我想升级我的MFC MDI应用程序以使用新的MFC功能包。在CMFCToolBar中禁用项目

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

pCmdUI-> Enable(FALSE);

只有在CView对象中处理了ON_UPDATE_COMMAND_UI消息,但是如果在CMFCToolbar派生类中处理了这个消息,它才能正常工作。

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

回答

0

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

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