谁知道???
菜单在没有添加消息函数时会被禁用,mfc是怎么做到的呢?

解决方案 »

  1.   

    不明白你的意思 当他添加消息相应时 menu.EnableMenu(ncount,MF_BYPOSITION|MF_ENABLE);
      

  2.   

    在menu初始化的时候,检查一下是否有消息映射
      

  3.   

    我是想知道mfc禁用没有消息函数的菜单的代码在哪里??我现在有一个单文档的程序,View做成tab页,我添加了两页,第一页继承CEditView,第二页继承CTreeView.当一页为活动页时,菜单中“打印预览”被禁用;当第二页为活动的时候菜单中“打印”“打印预览”都被禁用了。这也菜单都是mfc自动禁用的,我想让它们不被禁用
      

  4.   

    这个你要自己添加打印和打印预览的消息处理,然后根据选中的TAB做不同的打印和打印预览的处理
      

  5.   

    MFC是在OnIdle对没有消息处理的菜单禁用的
      

  6.   

    在DOC类或主类,自己重写该消息的响应函数就行了.
      

  7.   

    呵呵,mfc自动生成了“打印”“打印预览”的消息函数。我打算重载就可以了。我现在的问题是,菜单被无缘无故禁用。我想解决禁用的问题??
      

  8.   


    CFrameWnd::m_bAutoMenuEnable
    这个变量控制着菜单的初始化是否禁用问题,你可以在CFrameWnd构造函数里面试试设置它的值。When this data member is enabled (which is the default), menu items that do not have ON_UPDATE_COMMAND_UI or ON_COMMAND handlers will be automatically disabled when the user pulls down a menu.
    Menu items that have an ON_COMMAND handler but no ON_UPDATE_COMMAND_UI handler will be automatically enabled. When this data member is set, menu items are automatically enabled in the same way that toolbar buttons are enabled.