1.程序运行后新建一个最大化的子窗口
2.变换菜单,子窗口的最小化、最大化、关闭按钮不见了
请教如何解决?

解决方案 »

  1.   

    代码贴出来,别人才知道该怎么解决阿
    SetWindowLongModifyStyle
    之类的函数
    修改窗口样式以前
    先获取GetWindowStyle
    GetWindowLong
    把样式保存起来,以后好恢复上面缺少了
    WS_SYSMENU,WS_MINIMIZEBOX, and WS_MAXIMIZEBOX ,之类的样式
      

  2.   


    CMenu * pMenu;
    pMenu = new CMenu;
    pMenu->LoadMenu(IDR_NEWMENU);
    AfxGetApp()->m_pMainWnd->SetMenu(pMenu);原来肯定是有按钮的,就使用上面的代码更换了菜单
      

  3.   

    AfxGetApp()->m_pMainWnd->DrawMenuBar();
    pMenu.Detach();
    加进去看看
      

  4.   


    1.用向导生成一个MDI MFC
    2.新建菜单IDR_NEWMENU
    3.在原菜单中增加测试菜单项,在其响应函数中增加上述代码
    CMenu * pMenu;
    pMenu = new CMenu;
    pMenu->LoadMenu(IDR_NEWMENU);
    AfxGetApp()->m_pMainWnd->SetMenu(pMenu);
    4.在新菜单中增加恢复菜单项,在其响应函数中增加类似代码,使菜单恢复运行,可以看到上述现象(子窗口一定要最大化),多操作几次并新建子窗口还有其他的BUG
      

  5.   

    同问!我也遇到了相同的问题。
    增加AfxGetApp()->m_pMainWnd->DrawMenuBar();
    pMenu.Detach();
    之后还是不行
      

  6.   

    按下面步骤试验,肯定可以看到现象。1.用向导生成一个MDI MFC
    2.新建菜单IDR_NEWMENU
    3.在原菜单中增加测试菜单项,在其响应函数中增加上述代码
    CMenu * pMenu;
    pMenu = new CMenu;
    pMenu->LoadMenu(IDR_NEWMENU);
    AfxGetApp()->m_pMainWnd->SetMenu(pMenu);
    4.在新菜单中增加恢复菜单项,在其响应函数中增加类似代码,使菜单恢复运行,可以看到上述现象(子窗口一定要最大化)。
      

  7.   

    MDI子框架本来就只有系统菜单
    MDI里面要换菜单可以参考http://blog.csdn.net/jiangsheng/archive/2003/11/09/3795.aspx