C++ TranslateAccelerator和禁用的菜单项

C++ TranslateAccelerator和禁用的菜单项,c++,winapi,menu,accelerator,C++,Winapi,Menu,Accelerator,在我的应用程序中,我根据上下文启用/禁用菜单项,如果文本区域有焦点,我将禁用与导航键冲突的加速器(例如Ctrl Left/Right) 根据: 如果加速器与菜单项具有相同的标识符,且菜单项为灰色或禁用,则加速器将被禁用,并且不会生成WM_命令或WM_SYSCOMMAND消息 但是,如果关联的菜单加速器仍然在加速器表中,那么TranslateAccelerator仍然返回true,尽管没有发送任何消息(因此“吃掉”键盘事件) 我想知道是否有办法确定TranslateAccelerator是否真的发

在我的应用程序中,我根据上下文启用/禁用菜单项,如果文本区域有焦点,我将禁用与导航键冲突的加速器(例如Ctrl Left/Right)

根据:

如果加速器与菜单项具有相同的标识符,且菜单项为灰色或禁用,则加速器将被禁用,并且不会生成WM_命令或WM_SYSCOMMAND消息

但是,如果关联的菜单加速器仍然在加速器表中,那么TranslateAccelerator仍然返回true,尽管没有发送任何消息(因此“吃掉”键盘事件)

我想知道是否有办法确定TranslateAccelerator是否真的发送了一条消息?我试图避免每次启用或禁用菜单项时重建加速器表