默认情况下,没有处理函数和更新函数的菜单项会被禁用。
如果程序是基于框架的。弹出菜单的时候系统会向框架查询菜单项是否可用,以及设置菜单项的状态(参见CFrameWnd::OnInitMenuPopup的代码)
如果程序是对话框的,则你可能需要自己写代码使得使用ON_UPDATE_COMMAND_UI宏定义的菜单项更新函数有效。
参见
http://www.csdn.net/develop/read_article.asp?id=9481
http://www.csdn.net/develop/read_article.asp?id=9490

解决方案 »

  1.   

    我建议你参照“关于...”命令的处理方式,可以在主程序中(XXXXAPP)中实现,
    或是在主框架中处理命令ID的更新,不要把消息传到视中就可以了。我就是这样实
    现的,我做的是两个视的,一个是自己生成的,一个是我切分的,所以会出现命令
    被MFC自动添加更新代码造成有的视可以用某些命令有的不可以。
      

  2.   

    是这样,在CMainFrame类里有个函数SetFocus()重载,是将焦点再设给m_wndView,如果你用了切分窗口,应当通知切分窗口和视图设置了焦点。
      

  3.   

    在CMainFrame类里定义消息映射函数