MFC创建了一个基于对话框的工程,并且在该对话框中添加了菜单栏,菜单栏有如下需求,有一个用来指示是否显示的下拉菜单,点击的时候切换该菜单的图标和状态。
这样做:
1、首先定义一个用于指示该菜单栏状态的BOOL变量:
2、其次添加该菜单栏的两个UI处理函数:
3、给这个菜单附上位图图标:
希望是运行之后选中和不选中是不一样的图标,但是运行之后点击该菜单栏没反应,并且调试的输出窗口提示:AppMsg - Warning: not executing disabled command 32779。
于是,Goole之,原因如下:
当显示下拉菜单时,WM_INITMENUPOPUP消息在显示菜单项之前发送。MFC CFrameWnd::OnInitMenuPopup函数遍历菜单项并调用项的更新命令UI处理程序(如果有的话)。每个菜单项的外观都会更新以反映其状态(启用/禁用、选中/未选中)。更新UI机制不适用于基于对话框的应用程序,因为CDialog没有OnInitMenuPopup处理程序,它使用CWnd的默认处理程序,后者不为菜单项调用更新命令UI处理程序。
并给出了解决方案:
解决方案
希望能帮到跟我遇到同样问题的小伙伴们!
以上!
MFC菜单栏不更新状态AppMsg - Warning: not executing disabled command 32779
最新推荐文章于 2021-11-30 17:38:56 发布