在使用 VS2008 的 doc/view 项目中,MFCMenuBar似乎从项目中加载了正确的 MENU 资源 (IDR_MAINFRAME),因为添加和删除菜单项反映在菜单的 UI 中。它甚至将加速器附加到默认菜单项(例如 Ctrl+O 到 Open... 项)。但是,加速器表 (IDR_MAINFRAME) 似乎没有连接到菜单。将 Open... 的默认 Ctrl+O 更改为 Ctrl+7 之类的内容不起作用。Ctrl+O 仍然附加到 Open... 菜单项,并且 Ctrl+O 仍然调用 Open... 处理程序。资源文件中只有一个加速器表,所以我不知道 CMFCMenuBar 从哪里获取它的加速器信息。
此时,我已经能够通过手动加载 IDR_MAINFRAME 加速器表并自己翻译消息来使加速器工作。但 CMFCMenuBar 仍在附加默认加速器。
谁能解释这里发生了什么?如何强制 MFCMenuBar 使用我的加速器表并且不附加加速器或附加正确的加速器?