有两种办法:一,在创建程序时将窗口的最大化关掉.
           二,重载PreCreateWindow()
          将style最大化去掉.

解决方案 »

  1.   

    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE;
    // TODO: Modify the Window class or styles here by modifying
    //  the CREATESTRUCT cs cs.style = WS_THICKFRAME  | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZE; return TRUE;
    }
      

  2.   

    修改PreCreateWindow()函数如下:
    BOOL CWndMain::PreCreateWindow(CREATESTRUCT& cs) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE;
    // TODO: Modify the Window class or styles here by modifying
    //  the CREATESTRUCT cs cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
    cs.style &= ~WS_MAXIMIZEBOX; //禁止窗口最大化
    cs.style &= ~WS_MINIMIZEBOX; //禁止窗口最小化
    // cs.style &= ~WS_SYSMENU; //取消Title上的按钮
    cs.style &= ~WS_THICKFRAME;//使窗口不能用鼠标改变大小
    cs.lpszClass = AfxRegisterWndClass(0);
    return TRUE;
    }
      

  3.   

    另外,还可以在CMainFrame中添加消息 ON_WM_SYSCOMMAND()
    在对应的函数中截获最大、最小的消息,直接返回旧可以了。
    例如最小化按钮:
    if((nID&0xfff0)==SC_MINIMIZE)
    {
                //直接返回
       return;
    }
    CFrameWnd::OnSysCommand(nID, lParam);试一试把!
      

  4.   

    用SetWindowPos函数能实现吗?该怎么实现?
      

  5.   

    http://www.csdn.net/expert/topic/102/102324.shtm
    http://www.csdn.net/expert/topic/109/109288.shtm
    这里,我也问过的
      

  6.   

    创建时的第四步,advanced->window style->MaxedBox去掉.
      

  7.   

    创建时的第四步,advanced->window style->MaxedBox去掉.
      

  8.   

    创建时的第四步,advanced->window style->MaxedBox去掉.
      

  9.   

    创建时的第四步,advanced->window style->MaxedBox去掉.