如何拦截更新命令UI消息CN_UPDATE_COMMAND_UI

时间:2014-07-15 09:36:21

标签: c++ mfc

我有一个特殊的类来保存数据组。该类由核心功能和gui功能组成。我使用特定的组方法来显示上下文菜单和执行菜单命令。我在WM_COMAND中拦截PreTranslateMessage容易,但我在update command ui消息时遇到问题。我使用CN_UPDATE_COMMAND_UI。它甚至没有来到PreTranslateMessage类的CMDIFrameWndEx。同时它必须到那里,因为菜单菜单也使用此消息。 使用control range消息处理程序不是一个选项,因为标识符可能搞砸了,一切都不起作用。

如何拦截邮件以处理on update command ui

辅助走动是使菜单项无法on update command ui。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

基于this MSDN article,在生成WM_INITMENUPOPUP消息时处理ON_UPDATE_COMMAND_UI。所以我认为你必须尝试在PreTranslateMessage中查找WM_INITMENUPOPUP消息。

答案 1 :(得分:0)

经过一段时间的深度调试后,我发现此邮件已进入OnCmdMsg的{​​{1}}。