通过VC生成一个MFC单文档后,把默认的菜单删掉了,运行的时候是提示“建立空文档失败”,请问这是为什么呀?删掉后有什么解决办法能让他运行成功!

解决方案 »

  1.   

    m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
    | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))在这个函数里面改
      

  2.   

    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
    IDR_MAINFRAME,
    RUNTIME_CLASS(CClientDoc),
    RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架窗口
    RUNTIME_CLASS(CClientView));
    if (!pDocTemplate)
    return FALSE;
    AddDocTemplate(pDocTemplate);
    把C__APP文件中这一段去掉
      

  3.   

    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
    IDR_MAINFRAME,
    RUNTIME_CLASS(CClientDoc),
    RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架窗口
    RUNTIME_CLASS(CClientView));
    if (!pDocTemplate)
    return FALSE;
    AddDocTemplate(pDocTemplate);去掉了,虽然没有提示建立空文档失败,但是运行不出现窗口。为啥呢??
      

  4.   

    m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
    | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    这句去掉是去掉工具条的吧,跟菜单有关么?
      

  5.   

    你是直接把菜单资源删了吗?你在CMainFrame的OnCreate()中调用:SetMenu((CMenu*)GetDlgItem(IDR_MAINFRAME));  //IDR_MAINFRAME为菜单资源;就可以把菜单删去没必要删了菜单资源
      

  6.   

    MFC单文档好像一定要菜单的,你想不要就在创建单文档时,用语句把菜单删了,不要删掉默认的那个资源。用以下方法删:
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 

    if(cs.hMenu!=NULL) 

    ::DestroyMenu(cs.hMenu); // delete menu if loaded 
    cs.hMenu = NULL; // no menu for this window 

     
    return CFrameWnd::PreCreateWindow(cs); 
    }
      

  7.   

    搞定了,在CMainFrame -- OnCreate()-- SetMenu(NULL) ;