如何在改变窗口大小时,设置一个最小(大)面积,当小于(大于)这个面积时,窗口不缩放

解决方案 »

  1.   

    可以在OnSize()里限制cx cy的大小
      

  2.   

    响应窗口WM_GETMINMAXINFO消息,添加类似下面的处理代码:
    void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
    {
    __super::OnGetMinMaxInfo(lpMMI); lpMMI->ptMaxTrackSize = CPoint(500, 400);
    lpMMI->ptMinTrackSize = CPoint(200, 100);
    }
      

  3.   

    TO jennifergiant(希罗·尤尔):在OnSize()里怎么限制?
    TO tonyblues(蓝托尼):
    我用的是对话框,不是视图,OnGetMinMaxInfo在对话框程序中可以用吗?
      

  4.   

    tonyblues(蓝托尼) 方法是对的,可以用在对话框里,这是CWnd的方法。
      

  5.   

    这是我自己写的响应WM_SIZING 消息的处理函数, 关于这个消息的信息可以查看MSDN
    void OnSizing(HWND hChat, RECT *pRect)

        if((pRect->right - pRect->left) < 400)
    pRect->right = pRect->left + 400;
        if(pRect->bottom - pRect->top < 500)
    pRect->bottom = pRect->top + 500;
    }