在对话框上有Edit控件,如果对话框大小改变了,如何是Edit控件的大小也随之改变呢?
包括有CListCtrl控件

解决方案 »

  1.   

    都一样。对话框改变大小时,每个控件都用MoveWindow函数重新定义大小和位置
      

  2.   

    OnSize里处理
    MoveWindow SetWindowPos都可以改变大小
      

  3.   

    响应WM_SIZE消息,添加下列代码(具体位置和大小你自己计算)
    CFormView::OnSize(nType, cx, cy);
    CRect rect;
    GetClientRect(&rect);
    int nWidth = rect.Width();
    int nLeight = rect.Height();
    if(m_edit.GetSafeHwnd())
    {    m_edit.SetWindowPos(this,rect.left + nWidth/100,rect.top + nLeight/100,nWidth-nWidth/100*2,nLeight/100*45,SWP_SHOWWINDOW|SWP_NOZORDER);
    }if(m_list.GetSafeHwnd())
    {
        m_list.SetWindowPos(...)
    }
      

  4.   

    转帖的以前帖子代码:void COracleAssistView::OnSize(UINT nType, int cx, int cy) 
    {
    CFormView::OnSize(nType, cx, cy); CRect rect;
    GetClientRect(&rect);

    int nWidth = rect.Width();
    int nLeight = rect.Height();
    if(m_edit.GetSafeHwnd())
    { m_edit.SetWindowPos(this,rect.left + nWidth/100,rect.top +nLeight/100,nWidth-nWidth/100*2,nLeight/100*45,SWP_SHOWWINDOW|SWP_NOZORDER);
    } if(m_btnExec.GetSafeHwnd())
    {
    m_btnExec.SetWindowPos(this,rect.left + nWidth/100*40,
    rect.top + nLeight/100*47,nWidth/15,nLeight/100*5 ,SWP_SHOWWINDOW|SWP_NOZORDER);

    }

    if(m_ctrList.GetSafeHwnd()) //m_ctrlList是listctrl的变量
    {  m_ctrList.SetWindowPos(this,rect.left + nWidth/100,
    rect.top + nLeight/100*58,nWidth-nWidth/100*2,nLeight/100*52,SWP_SHOWWINDOW|SWP_NOZORDER);

    } }
      

  5.   

    laiyiling(最熟悉的陌生人)  :)