请问如何新增一个类,其基类不在类向导中。

解决方案 »

  1.   

    可以添加一个.h文件再添加一个.cpp文件不就行了
    或者添加用类向导添加一个不使用MFC的类不就行了
      

  2.   

    如果你所说的基类是自定义的,那在你的新类的.h文件中包含基类所在头文件,然后从基类派生即可。如果你想派生的基类是MFC的类库,但不允许在Class wizard中派生,那可以在Class Wizard中从相近类派生,然后在新类的定义文件中.h, .cpp中手工把基类替换成你想要的。比如,Class Wizard中不允许从CToolBar派生新类,但可以先从CToolBarCtrl派生一个新类,然后在相应.h,.cpp中把所有的CToolBarCtrl替换为CToolBar。
      

  3.   

    class wizard 
    add new class
      

  4.   

    菜单insert->new class。new class对话框选class type=Generic Class,在Base Class(es)填如基类和派生方式。
      

  5.   

    谢谢你,格格巫!我想在MainFrm.h文件中添加下列代码
    class CMyToolBar: public CToolBar
    {
    DECLARE_DYNCREATE(CMyToolBar)
    public:
    CComboBox m_ComboBox;
    CMyToolBar();
             virtual~CMyToolBar();

    protected:
    DECLARE_MESSAGE_MAP()
    };
    然后我在CmainFrame中定义了m_MytoolBar,出现编译错误:
    ('m_MytoolBar' uses undefined class 'CMyToolBar')
    class CMainFrame : public CFrameWnd
    {
    ... ..... ....protected:
       CMyToolBar  m_MytoolBar;.... ...  .....
    };
      

  6.   

    在mainframe.h中,
    #include "MytoolBar.h"
      

  7.   

    对了,最简单的方法是在ClassView中在项目下点右键,然后选New Class
    就行了,在里面可以创建不从任何类派生的类.
      

  8.   

    是不是在class wizard  里加的类就默认是支持MFC的?在class view 里加的类跟它有什么区别?
      

  9.   

    因为没看你的源文件,所以干脆不猜为什么会出现那样的错误。你可以这样试试:
    按我上面说的,先在Class Wizard中从CToolBarCtrl派生一个新类CMyToolBar,生成相应的mytoolbar.h, mytoolbar.cpp手工将mytoolbar.h, mytoolbar.cpp中所有CToolBarCtrl
    改为CToolBar在mainfrm.h中,为mainframe添加一个新成员,m_MyToolBar
    试试看