一个对话框中,m_dgrid为一个DataGrid 控件.此例中控件的大小为对话框的80%,并居中显示。
void CTestDlg::OnSize(UINT nType, int cx, int cy) 
{
CDialog::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
static i=0;
if(i)
{
m_dgrid.MoveWindow(cx*0.1,cy*0.1,cx*0.8,cy*0.8)    ;
}
else
i++;
}

解决方案 »

  1.   

    补充
    else
       i=1;
    /*i++可能会带来问题*/
      

  2.   

    我自己解决了,不过还是谢谢两位.
       RECT rc;
       GetClientRect(&rc);
       m_dgrid.MoveWindow(&rc);
      

  3.   

    可是我在使用的时候告诉我]:Debug Assertions Fails
    加断点发现:m_dgrid.MoveWindow(cx*0.1,cy*0.1,cx*0.8,cy*0.8)    出问题
    请问,为什么?
      

  4.   

    正确的表示方法是:
    void CDataBaseDlg::OnSize(UINT nType, int cx, int cy) 
    {
         CDialog::OnSize(nType, cx, cy);

        if(m_DataGrid.m_hWnd)
        {   
            m_DataGrid.MoveWindow(0,40,cx,cy) ;
        }
       
    }