在MDI程序中,我想让子窗口一开始就最大化,不知改如何处理,我用下面的办法不行:
BOOL CChildFrm::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style |= WS_MAXIMIZE;  
if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE; return TRUE;
}

解决方案 »

  1.   

    如果是创建新的应用程序,可以用MFC AppWizard 的Advanced 按钮并在MDI子窗口风格组中检测最大化或最小化;还可以重载 MDI Window 的PreCreateWindow函数,设置WS_MAXMIZE or WS_MINMIZE;如果从 CMDIChildWnd派生,调用 OnInitialUpdate函数中的 CWnd::Show Window来指定 MDI Child Window的风格。
      

  2.   

    改写CChildFrame的虚函数ActivateFrame:
    void CChildFrame::ActivateFrame(int nCmdShow) 
    {
    static BOOL bFirstRun = TRUE;
    if(bFirstRun)
    {
    nCmdShow = SW_SHOWMAXIMIZED;
    bFirstRun = FALSE;
    }
    CMDIChildWnd::ActivateFrame(nCmdShow);
    }
      

  3.   

    CWnd::ShowWindow(SW_SHOWMAXIMIZED)
      

  4.   

    重载ActivateFrame
    void CChildFrame::ActivateFrame(int nCmdShow)
    {
    // TODO: Modify this function to change how the frame is activated. nCmdShow = SW_SHOWMAXIMIZED;
    CMDIChildWnd::ActivateFrame(nCmdShow);
    }