对话框中的菜单命令更新处理程序

Posted

技术标签:

【中文标题】对话框中的菜单命令更新处理程序【英文标题】:Menu Command Update Handlers in Dialog Boxes 【发布时间】:2011-09-11 00:23:51 【问题描述】:

我有一个基于对话框的 MFC 应用程序。我的对话框有一个菜单,我使用here 描述的技术在对话框中启用菜单加速器。

这很好用,但我似乎找不到任何方法来实现菜单命令更新处理程序。或者,更确切地说,我已经实现了更新处理程序,但似乎找不到让 MFC 调用它们的好方法。

在网上搜索,我发现了像 UpdateDialogControls() 这样的函数来实现对话框子控件的命令更新处理程序。但我想对对话框菜单中的命令执行此操作。

有什么建议吗?

【问题讨论】:

【参考方案1】:

我不太喜欢 MFC,我使用的是普通的 win32,但这看起来像你需要的 The ON_UPDATE_COMMAND_UI Macro。如果您查看左侧导航菜单,您还可以找到“何时调用更新处理程序”主题。

并确保在将句柄传递给窗口的任何地方,实际上都是在将句柄传递给带有菜单的对话框(例如教程中的清单 3)。

【讨论】:

是的,我定义了一个ON_UPDATE_COMMAND_UI() 宏。但 MFC 不会自动在对话框中使用它。

以上是关于对话框中的菜单命令更新处理程序的主要内容,如果未能解决你的问题,请参考以下文章

MFC - 如何从菜单主机调用对话框

如何让MFC对话框中的Menu菜单变灰或恢复

新建一个MFC单文档程序含有菜单和工具栏,又建了一个对话框,如何直接显示对话框?

猎豹MFC--CMenu菜单 设置主菜单 给主对话框设置菜单 设置快捷菜单

怎样用photoshop做冰块和冰效果

从 App 类访问 Dlg 类中的变量