建了一个多文档程序,有多个子窗口。通过“window”菜单来选择不同的子窗口。
我想要子窗口一直保持最大,即填满主窗口。我处理了
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
void CChildFrame::OnSize(UINT nType, int cx, int cy) 
void CChildFrame::ActivateFrame(int nCmdShow) 在这些响应里都加了最大化SW_MAXIMIZE.
可是,开始当窗口不是最大的时候,子窗口都最大化,填满主窗口。可是,这时,再最大化主窗口,只要当前的子窗口最大化,因为通过"window"菜单来选择其他子窗口的时候,虽然会显示相应的子窗口,但是不是最大化的填满最大化的主窗口,而是在主窗口中间,还留有子窗口的边框。也就是说子窗口没有最大化。
各位牛人们,还望帮帮忙啊!!!!!!!!!!!

解决方案 »

  1.   

    http://search.csdn.net/Expert/topic/1099/1099193.xml?temp=.4060633
    http://search.csdn.net/Expert/topic/1744/1744400.xml?temp=.4831812
      

  2.   

    在主窗口的OnSize里来再最大化当前子窗口
      

  3.   

    试试这样,假设菜单项ID为ID_SHOW_WND2,则添加消息处理程序
    ON_COMMAND(ID_SHOW_WND2, OnShowWnd2)
    程序可这样写,假设有3个子窗口
    m_wnd1.ShowWindow(SW_HIDE);
    m_wnd3.ShowWindow(SW_HIDE);
    m_wnd2.ShowWindow(SW_MAXIMIZED);
      

  4.   

    MDI子窗口一启动就最大化
    方法一:
    在CChildFrame::PreCreateWindow(CREATESTRUCT& cs)函数中,加了
    cs.style |= WS_VISIBLE|WS_MAXIMIZE;,可以实现了
    方法二:
    用ClassWizard为CChildFrame类添加ActiveFrame消息
    void CChildFrame::ActivateFrame(int nCmdShow) 
    {
       if(GetMDIFrame()->MDIGetActive()) 
           CMDIChildWnd::ActivateFrame(nCmdShow); 
        else // else open maximized. 
            CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED); }
      

  5.   

    同时在菜单里用ShowWindow(SW_SHOWMINIMIZED);
      

  6.   

    在了窗口类的PreCreateWindow()函数中加入下面这句:
    cs.style|=WS_VISIBLE|WS_MAXIMIZE;即可
      

  7.   

    在了窗口类的PreCreateWindow()函数中加入下面这句:
    cs.style|=WS_VISIBLE|WS_MAXIMIZE;即可
      

  8.   

    /////////////////////////////////////////////////////////////////////////////
    // CChildFrame message handlersvoid CChildFrame::ActivateFrame(int nCmdShow) 
    {
    // TODO: Add your specialized code here and/or call the base class
    nCmdShow = SW_SHOWMAXIMIZED;
    CMDIChildWnd::ActivateFrame(nCmdShow);
    }
    你只要这样添加即可,记住:是SW_SHOWMAXIMIZED,而不是SW_MAXIMIZE,试试
      

  9.   

    呵呵,楼上可畏啊楼上的楼上的方法应该可以还有就是一开始就是最最大化(PreCreateWindow中处理),删除最大化按钮
    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
      pSysMenu ->DeleteMenu 或者 EnableMenuItem(×××,FALSE)
    也能达到效果
      

  10.   

    在CChildFrame的OnCreate函数最后调用ShowWindow(SW_SHOWMINIMIZED);在CMainFrame的OnCreate函数同样,不要重复设置cs.style否则会出现你说的问题。
      

  11.   

    用向导做不就可以了吗?
    在step4中选择advanced,进入window stayles,把mdi child frame stayle的maximized勾选。然后看看是怎么实现的。