我建了一个MFC EXE的工程,(Diaglog Based),我想添加一个从CWnd派生的类,但是ClassWizard中根本没有这个基类(basic class),我该如何实现!

解决方案 »

  1.   

    ClassWizard能认出的类必须有一定的标志.
    你用ClassWizard的new-->class来派生一个类就可以了
      

  2.   

    Class view->new class->select the base class wiht generic wnd!
      

  3.   

    那就手动创建吧,如class CGridCtrl : public CWnd
    {
        DECLARE_DYNCREATE(CGridCtrl)
    public:
        CGridCtrl(int nRows = 0, int nCols = 0, int nFixedRows = 0, int nFixedCols = 0);    BOOL Create(const RECT& rect, CWnd* parent, UINT nID,
                    DWORD dwStyle = WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE);
        BOOL SubclassWindow(HWND hWnd);
    }
      

  4.   

    用ClassWizard的new --> class 来派生,在New Class对话框里的Class Type选择Generic class,在Base Class里直接填入CWnd即可
      

  5.   

    你们是说从generic  class 派生吗,我选了在New  Class对话框里的Class  Type选择Generic  class,在Base  Class里直接填入CWnd即可 ,但是这样的话,就没法加入 afx_msg void OnPaint();
    afx_msg BOOL OnEraseBkgnd(CDC* pDC);
    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void OnTimer(UINT nIDEvent);
    afx_msg void OnDestroy();
    afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
    这些虚函数的派生了?
    5555555555
      

  6.   

    从generic  class 派生果然没错,谢了!!!!!