小弟在一个自动生成单文档程序中新添加了一个新的MFC类A,基类是CEditView,我现在要在A中响应工具栏的一个命令,但是好像不行.请各位高手指点一下.我是按传统方式在A中添加的消息函数.比如ON_COMMAND(ID_sdf, OnSDF)

解决方案 »

  1.   

    头文件
    DECLARE_DYNCREATE(CSingleDocView)
    DECLARE_MESSAGE_MAP()
    CPP文件
    IMPLEMENT_DYNCREATE(CSingleDocView, CView)
    添加了吗
      

  2.   

    在应用类中,应该加上文档模板;
    或在自动生成的视类中调用CEditView的功能。
      

  3.   

    嗯,其实我知道可以在自动生成的视类中调用CEditView的功能,但是我想知道有没有什么比较标准的做法.
      

  4.   

    license(序列号) 的意思是什么?我是用类生成向导添加的啊,所以这两个宏早就自动生成了啊 ??
      

  5.   

    并不是随便加一个View就能接收到消息,消息一般是CMainFrame 传递过来的,所以它跟CMianFrame要满足一定的关系
      

  6.   

    没错啊,我是用CSplitterWnd静态拆分的窗口,分成上下两个VIEW,但是两个VIEW是来自不同的类A和B,A类是应用程序框架自动生成的,B类是我后来用类生成向导添加的,工具栏的命令在A中可以相应,但是在B中完全没反应.我觉得可能还是文档模版的问题吧?因为B类并没有加到文档模版中去,不晓得哪个高手有没有比较标准的解决方法.
      

  7.   

    charles_y:
      我知道你说的啊,所以现在才请教各位有没有什么比较好的解决方法啊??
      

  8.   


    BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam) 
    {
    // TODO: Add your specialized code here and/or call the base class

    BOOL bRet=CFrameWnd::OnCommand(wParam, lParam);
    CView* pView=GetActiveView();
    if (pView!=NULL)
    {
    pView->SendMessage(WM_COMMAND,wParam,lParam);
    }
    return bRet;
    }