是在classview里正常添加的,并且实现了函数。protected:
//{{AFX_MSG(CMultiViewDemoView)
afx_msg void OnFile();
//}}AFX_MSGBEGIN_MESSAGE_MAP(CMultiViewDemoView, CView)
//{{AFX_MSG_MAP(CMultiViewDemoView)
ON_COMMAND(ID_FILE, CMultiViewDemoView::OnFile)
END_MESSAGE_MAP()

解决方案 »

  1.   

    命令消息首先被CWinApp类处理,默认的处理流程是CWinApp类->主框架->活动视图->文档。如果你要自定义处理流程,可以在处理流程中处理这个命令并/或转发到其他CCmdTarget派生类。只有一个视图的时候,视图总是框架的活动视图。用户可以通过界面操作来设置活动视图。如果要用程序设置,调用CSplitterWnd::SetActivePane你新建了一个VIEW累,程序中有两个VIEW了
      

  2.   

    我遇到过类似的问题,原因就是你的视图类不是当前Active视图
    解决方法:在主框架里作菜单消息响应函数,函数里把该消息发送到你的视图类。
      

  3.   

    这个和MFC的MDI框架结构和消息映射方式有关。MFC的MDI是可以给每个试图设置不同的菜单的,因此你希望这个菜单中任何试图都响应,应该是在CMainFrame,若是单独的View菜单才是在不同的视图之中。