in WM_SIZING:有一个LPRECT pRect;
修改它,就可以。
1。修改LPRECT pRect的长宽比;
2。if(宽<100)宽 = 100;

解决方案 »

  1.   

    是啦,你前面的问题都可以在WM_SIZING里处理,可以根据你需要的RECT来修改窗口的RECT,
    至于第三点,何必去管它呢??
      

  2.   

    你第三个问题,我前几天已问过了,不知是csdn专家看不起这类问题,还是没人能解决,贴子放了好几天,没人回答,你也死了心吧
      

  3.   

    Windows发送 WM_GETMAXMININFO消息来跟踪, 响应它,在 OnGetMAXMININFO 中写代码:
      

  4.   

    1。就用WM_SIZING。根据wParam的值调整lParam指向的RECT即可。比如,如果wParam的值是WMSZ_BOTTOM,就保留RECT的left、top和bottom的值,而调整right的值使得(right-left)/(bottom-top)满足你的比例条件;如果是WMSZ_LEFT,就调整bottom的值使矩形长宽满足比例——这样做用户界面会比较好看,虽然你也可以选择不去理会wParam而永远是调整right或bottom的值。2。用WM_GETMAXMININFO和WM_SIZING都可实现。用WM_SIZING稍稍麻烦,用WM_GETMAXMININFO比较简单——只要在MAXMININFO结构中返回一个期望的ptMinTrackSize即可。3。你如果仔细观察的话,会发现IE和Explorer的窗口很好地解决了这个问题——它会将遮住的菜单项或工具条以一个小箭头按钮和一个弹出式菜单来显示,而不是普通窗口那种卷绕或完全遮掉的样子。还有,他们的菜单也是作为Rebar的一部分的。我不知道这是通过指定Toolbar或Rebar的风格来实现的还使用代码来实现的,但我一直没有找到这种风格。用代码实现可能还要写不小一段,具体它们怎么做的,我不知道,但我也很想知道。
      

  5.   

    已经解决的差不多了,谢谢大家。正在筹集另外100分。
    再问一个问题:如何根据视窗大小来计算框架的大小,也就是如何根据View的尺寸来计算MainFrame的尺寸,有具体的函数吗?
      

  6.   

    GetSystemMetrics,下面几个参数大概有用:
    SM_CXSIZEFRAME
    SM_CYSIZEFRAME
    SM_CYCAPTION
    SM_CYMENU
    如果有Toolbar,那Toolbar的尺寸大概得另外计算。
      

  7.   

    CalcWindowRect可以按你要求以VIEW计算FRAME尺寸,但不包括工具条,另外菜单发生折叠时会不准确
    CControlBar::CalcFixedLayout可以计算工具条尺寸,计算时得参照
      

  8.   

    那么根据Frame计算View的大小又如何呢?
      

  9.   

    谢谢大家帮忙,先加一百分,剩下一百分在http://www.csdn.net/expert/topic/224/224983.shtm
    大家再帮我去看看剩下一点问题