没有添加OnSize函数时,GetClientRect(&rect)的rect值都是0;添加OnSize函数后,把GetClientRect(&rect)放到OnSize函数内就可以获得区域的大小了。
要获得一个区域的大小,是不是必须得调用OnSize函数呀?

解决方案 »

  1.   

    不用。关键在你调用GetClientRect的时机。
      

  2.   

            GetClientRect(&rc);
    int Width=rc.Width();
    int Height=rc.Height();
    我调试时,调用getclientrect函数时,Width和Height的值都是0,怎么回事呢?
      

  3.   


    我放在:
    int CsingledocView::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {.....}中
      

  4.   

    我是想在view窗口动态创建一个按钮,按钮的大小随窗口变化
      

  5.   

    OnCreate时窗口应该还没有完全创建好,所以不行。
      

  6.   

    同上,在OnInitialUpdate()调用GetClientRect
      

  7.   

    拿窗口是在什么时候创建好的呢?或者说,我该把
            delete m_Button;
    m_Button=new CButton();
    CRect rc;
    GetClientRect(&rc);
    int Width=rc.Width();
    int Height=rc.Height();
    CRect m_Button_rect(Width/3,Height/3,Width/2,Height/2);
    m_Button->Create(_T("按钮"),WS_CHILD|WS_VISIBLE,m_Button_rect,this,ID_BUTTON)
      这段代码放在哪呢?才能动态创建一个按钮?
    我最近才学习MFC,好多不懂,谢谢哈,呵呵