ON_UPDATE_COMMAND_UI 只能在CMainFrame才能改变菜单状态>?

解决方案 »

  1.   

    我试着在在从CView 派生的类中映射ON_UPDATE_COMMAND_UI  和CoMMMAND 没得行,现在是在mainframe中访问的其它View才反功能实现.
      

  2.   

    view中是可以的.但你要先确保一些事情1,app类的BOOL CXXXApp::InitInstance()中.
    m_pDocTmpl = new CDocTemplate(IDR_MAINFRM,
    RUNTIME_CLASS(CXXXDoc),
    RUNTIME_CLASS(CChildFrame), 
    RUNTIME_CLASS(CXXXView));
    这里的CXXXView这个view是不是你要接消息的那个view.
    2,view类的.h中是否有DECLARE_DYNCREATE(CXXXView)的宏.cpp中是否有
    IMPLEMENT_DYNCREATE(CXXXView, CView)3,CXXXdoc中有没有按ON_UPDATE_COMMAND_UI这个消息,记得是doc优先view,view优先mainfrm的
      

  3.   

    'CSingleDocTemplate::CSingleDocTemplate' : function does not take 7 parameters
    可以多少个VIEW?
      

  4.   


    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
    IDR_MENU1,
    RUNTIME_CLASS(CCXDataShowDoc),
    RUNTIME_CLASS(CMainFrame),       // main SDI frame window
    RUNTIME_CLASS(CCXDataShowView),
    RUNTIME_CLASS(CTopView),
    RUNTIME_CLASS(CMainView),
    RUNTIME_CLASS(CMenuLeftView)



    );
    AddDocTemplate(pDocTemplate);
    =================================================
    错误信息
    'CSingleDocTemplate::CSingleDocTemplate' : function does not take 7 parameters