各位大哥,我是在sdi程序里面最后那步用的基类是CFormview,可是在里面放了控件后,在改变窗口大小时不能同时改变里面控件的大小,请问该如何处理

解决方案 »

  1.   

    void CMyFormview::OnSize(UINT nType, int cx, int cy) 
    {
    CFormview::OnSize(nType, cx, cy);
    CRect rc;
             GetClientRect(rc);         m_cEdit.MoveWindow(rc);
        
    }
      

  2.   

    一个味,楼主自己动动脑子
    void CMyFormview::OnSize(UINT nType, int cx, int cy) 
    {
    CFormview::OnSize(nType, cx, cy);
    CRect rc;
             GetClientRect(rc);
             CRect rcLeft = rc;
             rcLeft .rght = rc.left +rc.Width()/3;
             m_cEdit1.MoveWindow(rcLeft );
             CRect rcRight = rc;
             rcRight.left = rcLeft .rght + 2;
             m_cEdit1.MoveWindow(rcRight);    
    }
      

  3.   

    给你个地址,这是一个库,里面有好多针对各种对话框、控件、form的类,你直接从相应的类继承就可以了。详细的你可以参见文档,很好用。
    http://www.codeproject.com/dialog/resizabledialog.asp
      

  4.   

    void CMyFormview::OnSize(UINT nType, int cx, int cy) 
    {
    CFormview::OnSize(nType, cx, cy);
    CRect rc;
             GetClientRect(rc);
             CRect rcLeft = rc;
             rcLeft .rght = rc.left +rc.Width()/3;
             if (m_cEdit1.GetSafeHwnd())
             m_cEdit1.MoveWindow(rcLeft );
             CRect rcRight = rc;
             rcRight.left = rcLeft .rght + 2;
             if (m_cEdit2.GetSafeHwnd())         m_cEdit2.MoveWindow(rcRight);    
    }
      

  5.   

    谢谢(深夜不眠者) 大哥,请问你加的那个getsafehwnd()是什么意思啊?
      

  6.   

    这里好像有一个问题,拖动产生滚动条后,就不应该设置m_cEdit2的范围为GetClientRect(rc);而应该是原来控件的尺寸.请问怎样解决