比如:窗口从宽1000高800起,用鼠标改变大小到宽500高400,现在我希望该窗口拉到宽300高200时就保持宽300高200,不能再被拉小,只能拉大,如何处理?谢谢!

解决方案 »

  1.   

    void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
    {
    // TODO: Add your message handler code here and/or call default
    lpMMI->ptMaxTrackSize=CPoint(677,506);
    lpMMI->ptMinTrackSize=CPoint(677,506);//设置最大和最小的情况
    CFrameWnd::OnGetMinMaxInfo(lpMMI);
    }
      

  2.   

    处理消息WM_GETMINMAXINFO就可以了,ptMinTrackSize就表示最小时大小为677 506 如果在消息下拉列表中找不到这个消息,就到class wizard->Class Info页中在Message Filter下拉列表中选择window,然后在回到Message Map页,在消息下拉列表中就可以 找到这个消息了!May You Success
      

  3.   

    void CMainFrame::OnSize(UINT nType, int cx, int cy) 
    {
    CFrameWnd::OnSize(nType, cx, cy);

    CRect rcWindow;
    GetWindowRect(&rcWindow); if(rcWindow.Width() < 200)
    {
    MoveWindow(rcWindow.left,rcWindow.top,200,rcWindow.Height());
    } if(rcWindow.Height() < 200)
    {
    MoveWindow(rcWindow.left,rcWindow.top,rcWindow.Width(),200);
    }
    }
      

  4.   

    laiyiling和EnochShen的方法我都试了,两者的效果是一样的: 窗口始终保持在设定的大小.但这和我想要的不一样: 
    我希望窗口范围可以在设定大小和最大化之间任意改变!!! 窗口宽度和高度的变化值必须在设定值和最大值之间.
      

  5.   

    lpMMI->ptMaxTrackSize=CPoint(677,506);//
    lpMMI->ptMinTrackSize=CPoint(677,506);//这里的两个值你就不能设置为一样了,
      

  6.   

    laiyiling的方法比我的好~~ ^_^