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

How to intercept on update command UI message CN_UPDATE_COMMAND_UI

本文关键字:UI 何拦截 UPDATE COMMAND CN 消息 命令 更新      更新时间:2023-10-16

我有一个特殊的类来保存数据组。类由核心功能和gui功能组成。我使用特定的组方法来显示上下文菜单和执行菜单命令。我在PreTranslateMessage中拦截WM_COMAND很容易,但我有update command ui消息的麻烦。我用CN_UPDATE_COMMAND_UI。它甚至没有出现在CMDIFrameWndEx类的PreTranslateMessage。同时,它必须到达那里,因为菜单菜单也使用这个消息。使用control range消息处理程序不是一个选择,因为标识符可能会混乱,一切都将无法工作。

如何拦截处理on update command ui的消息

二次行走是使菜单项工作没有on update command ui。我该怎么做呢?

根据这篇MSDN文章,在生成WM_INITMENUPOPUP消息时处理ON_UPDATE_COMMAND_UI。所以我认为你必须尝试寻找WM_INITMENUPOPUP消息在你的PreTranslateMessage

经过一段时间的深入调试,我发现这个消息是进入CCmdTargetOnCmdMsg