当然我可以重建一个工程,然后把以前做好得烤过去,然后再添加,但是这样很麻烦,因为工程比较大。
怎么办那,等待您的帮助

解决方案 »

  1.   

    不知道楼主给我分不?哈哈
    ----------------------------------
    建立一个继承于 CMDIChidWnd 的类,不防设为 CChldFrm。在 CWinApp 中作如下变化。InitInstance()
    {
    . ...
        //instead of adding CSingleDocTemplate
        // Add CMultiDocTemplate.
        pDocTemplate = new CMultiDocTemplate(
               IDR_MAINFRAME,
               RUNTIME_CLASS(CSDIDoc),
               RUNTIME_CLASS(CChldFrm),
    // For Main MDI Frame change this frame window from
    // CFrameWnd derivative ( i.e. CMainFrame )
    // to your CMDIChildWnd derived CChldFrm.
               RUNTIME_CLASS(CSDIView));
    /// After this it is required to create the main frame window
    // which will contain all the child windows. Now this window is
    // what was initially frame window for SDI.
        CMainFrame* pMainFrame = new CMainFrame;
        if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
                return FALSE;
         m_pMainWnd = pMainFrame;
    .....
    }  在从 CMDIFrameWnd 中继承的类 CMainFrame 代替 CFramWnd 后,所有的类都将从 CMDIFrame 继承,而不是 CFrameWnd,编译运行后你就会发现程序已经从 SDI 变换到 MDI。
      注意:在 CMainFram 中必须将构造函数从 private 改为 public,否则会出错。--------------------------------------
    别处看到的。
      

  2.   

    我告诉大家一个省力又实用的好办法:
    1.建立一个与原工程同名的单文件工程XXX;
    2.删除原工程的CChildFram.h/.cpp;别忘了再资源文件Munu下删除IDR_MYGLTETYPE<因为它对 
      应着CChildFram>
    3.用新建的工程的XXXApp.h/.cpp ^ XXXMainFram.h/.cpp 代替原工程的相应文件。就这么简单了,什么都不用去管,让傻瓜向导去管吧!!!haha...