在框架类的OnSize()函数中设定了分割视图的相对大小比例。拖动窗口的时候各视图可以随窗口等比例的放大或缩小。但是在按下最大化、还原按钮后却不可以实现按照等比例的改变。在OnSize()函数中加入了RecalcLayout()后就解决了这个问题。我想问:为什么拖动的时候不加RecalcLayout()没事,而最大化的时候不加RecalcLayout()就不能正常的显示呢?

解决方案 »

  1.   

    肯定不一样了,响应过程都不同~~点击最大化的时候可能还有别的处理在调用onsize之前
      

  2.   

    最大化可要响应OnPaint,OnSize函数的
    而拖动不必
      

  3.   

    我在OnPaint,OnSize里都做了修改,也没什么变化。不知道怎么回事
      

  4.   


    真是这样吗?
    我曾经分割成T子型的视图,界面放大缩小都是互不影响的。
    LZ能否把界面的拖拉改变图片上传到CSDN让大家看看?
      

  5.   

    运行程序正常打开的界面:最大化(前提是没加RecalcLayout()):
    最大化后再点还原按钮:
      

  6.   

    从上边的截图来看
    感觉你的窗体分成了3个区
    不知道状态栏上的那块白色的是否也算??初始化的时候,切分区域的CSize数值设置大一些,尽量地接近或者超过屏幕大小.
    不妨试试看.