我需要一个多文档窗口,这个程序的mainframe(主窗口)大小固定,不能调整,并且总是以最大化显示,请问该如何实现?

解决方案 »

  1.   


    app的InitInstance中
    在原来pMainFrame->ShowWindow(m_nCmdShow);
            的前面加上 DWORD dwStyle = GetWindowLong(pMainFrame->m_hWnd, GWL_STYLE);
    dwStyle &= ~(WS_SIZEBOX);
    dwStyle &= ~(WS_MAXIMIZEBOX);
    dwStyle &= ~(WS_MINIMIZEBOX);
    SetWindowLong(pMainFrame->m_hWnd, GWL_STYLE, dwStyle); pMainFrame->ShowWindow(SW_SHOWMAXIMIZED);然后把pMainFrame->ShowWindow(m_nCmdShow);可以删了试试呢
      

  2.   

    WM_GETMAXMININFOvoid CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
    {
    // TODO: Add your message handler code here and/or call default
    lpMMI->ptMinTrackSize.x = 。。;
    lpMMI->ptMinTrackSize.y = 。。;
    lpMMI->ptMaxTrackSize.x = 。。;
    lpMMI->ptMaxTrackSize.y = 。。; CFrameWnd::OnGetMinMaxInfo(lpMMI);
    }
      

  3.   

    to :handsomerun(毛毛) 
    你的方法可以最大化显示,但是当双击窗口最上方也就是caption区域时窗口会变小,而且没邮办法回复
      

  4.   

    to lixiaosan(小三) 
    用你的方法双击窗口标题也会出现问题,能否有办法做到象模态对话框一样不能修改,只能关闭和最小化
      

  5.   

    添加ON_WM_NCLBUTTONDBLCLK消息void CMainFrame::OnNcLButtonDblClk(UINT nFlags, CPoint point)
    {
        if(nFlags != HTCAPTION)
          CFrameWnd::OnNcLButtonDblClk(nFlags, point);
    } 手动添加一下
    WM_NCLBUTTONDBLCLK
    这个消息的处理记得BEGIN_MESSAGE_MAP
    那边要加
    ON_WM_NCLBUTTONDBLCLK
      

  6.   

    to handsomerun(毛毛) 
      用SetWindowLong()或者m_pMainWnd->ModifyStyle()修改了属性以后显示窗口以全屏的方式,可我想要的是最大化,不要覆盖桌面开始菜单和任务栏
      

  7.   


    // dwStyle &= ~(WS_SIZEBOX);
    这个注销掉