如何在MFC中的框架内创建和使用CView继承的对象?

时间:2011-10-05 11:15:23

标签: mfc

我使用VS2008中的向导创建了一个没有文档/视图的MFC SDI应用程序。 我想将CChildView的默认创建子控件替换为具有两个CEditViews的拆分器。创建有效,但当我将任何字符输入编辑视图时,应用程序崩溃。

  1. 为什么会发生崩溃?
  2. 如何修复崩溃?
  3. 如何访问已创建视图的实例?
  4. MainFrame.h:

    class MainFrame : public CFrameWnd
    {
        public:
            virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
        private:
            CSplitterWnd splitter;
        // ...
    };
    

    MainFrame.cpp

    BOOL MainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
    {
        splitter.CreateStatic(this, 1, 2);
        splitter.CreateView(0, 0, RUNTIME_CLASS(CEditView), CSize(0, 0), pContext);
        splitter.CreateView(0, 1, RUNTIME_CLASS(CEditView), CSize(0, 0), pContext);
    
        return TRUE;
    }
    

1 个答案:

答案 0 :(得分:0)

本文看起来是替换默认SDI视图的一个很好的示例:http://simplesamples.info/MFC/WithoutTemplates.php