一个SDI的程序,如何禁止改变主框架的大小,就是不能通过拖,拉来改变大小。

解决方案 »

  1.   

    可以处理WM_SIZE WM_MOVE
             SetWindowPos(NULL,0,0,0,0,SWP_NOSIZE||SWPNOMOVE);
    如果和你开始设置窗口大小有冲突
    则只要在WM_MOVE中加入
    另外在WM_GETMINMAXINFO 中加入
    lpMMI->ptMinTrackSize.x=你窗口的宽度;
    lpMMI->ptMinTrackSize.y=你窗口的高度;
    lpMMI->ptMaxTrackSize.x=你窗口的宽度;
    lpMMI->ptMaxTrackSize.y=你窗口的高度;
      

  2.   

    移动还是可以移动,就是不能改变大小,可以只在WM_SIZE中处理么?
      

  3.   

    补充一点,如果你想让你的窗口不能最大化最小化,加上下面代码BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    TRACE("CMainFrame::PreCreateWindow\n");
    cs.style &= ~(WS_MINIMIZEBOX|WS_MAXIMIZEBOX);
    if( !CMDIFrameWnd::PreCreateWindow(cs) )
    return FALSE;
    return TRUE;
    }
      

  4.   

    SetWindowPos(NULL,0,0,0,0,SWP_NOSIZE||SWPNOMOVE);
      

  5.   

    强烈同意 CrazyProgrammer(疯子) 的主意,我试了,确实这样试最简单的了。