1.不是隐藏菜单,是删掉菜单资源(VC2008)2.在VC2008中,用向导生成的代码过于臃肿了,于是就决心进行删减,现在只剩下这个IDR_MAINFRAME的菜单资源了
只要删掉,一定会debug assert failed,只能运行到下面这个函数
BOOL CWnd::ShowWindow(int nCmdShow)
{
ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL)); if (m_pCtrlSite == NULL)
return ::ShowWindow(m_hWnd, nCmdShow);
else
return m_pCtrlSite->ShowWindow(nCmdShow);
}3.三个类
class CChildView : public CWnd
class CMainFrame : public CFrameWndEx
class CMyApp : public CWinAppEx4.编号为IDR_MAINFRAME的默认资源有三个,menu icon和string
BOOL CMyApp::InitInstance()中,有一句
pFrame->LoadFrame(IDR_MAINFRAME,WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,NULL);5.请各位大佬支招,谢谢!

解决方案 »

  1.   

    这种情况,既然不需要菜单,那么直接用Dialog来创建界面好了..
      

  2.   

    IDR_MAINFRAME这个不单单是菜单资源的
      

  3.   

    寻找IDR_MAINFRAME和其相关的变量,还要在MFC源代码里修改
      

  4.   

    窗口的创建过程:
    1 定义窗口类,填充如下的结构体,其中hIcon,hCursor,都是必须的,否则窗口注册就会失败
     typedef struct _WNDCLASS { 
        UINT       style; 
        WNDPROC    lpfnWndProc; 
        int        cbClsExtra; 
        int        cbWndExtra; 
        HINSTANCE  hInstance; 
        HICON      hIcon; 
        HCURSOR    hCursor; 
        HBRUSH     hbrBackground; 
        LPCTSTR    lpszMenuName; 
        LPCTSTR    lpszClassName; 
    } WNDCLASS, *PWNDCLASS; 
    2 调用RegisterWindow注册窗口类 
    3 调用CreateWindow创建窗口
    4 显示窗口
    5 更新窗口
    你打开资源文件看看IDR_MAINFRAME和菜单,图标,位图都有关联,如果你把它删了,程序就没有资源了
    不出错才怪呢
      

  5.   

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    return -1; //去掉窗口的主菜单和标题栏
      this->SetMenu(NULL);
      ModifyStyle(WS_CAPTION,   0,   SWP_DRAWFRAME); 
    return 0;
    }
      

  6.   

    唉,算了,谁让自己懒,不用sdk呢
    要是谁有办法,我送他200分
    5 11 12楼回帖前好歹看看问题啊
      

  7.   

    找到根源了,唉,真不能删除只能隐藏啊,
    http://support.microsoft.com/kb/131368
    机器翻译很烂,看英文的吧