0

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

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

pCmdUI->启用(假);

只有在 CView 对象中处理了 ON_UPDATE_COMMAND_UI 消息但在 CMFCToolbar 派生类中处理时,这才能完美地工作。

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

4

1 回答 1

0

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

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

于 2012-02-21T11:39:53.033 回答