我定义了一个对话框,里面有几个控件。我想在调整对话框大小的同时(比如说最大化),比例的调整里面的控件的大小及位置,该怎么做?

解决方案 »

  1.   

    怎么用呢?我也试过:
    void CMainFrame::OnSize(UINT nType, int cx, int cy) 
    {      float rx, ry;
          CRect rc,rc1;
          CContactlineView *pview = (CContactlineView*)GetActiveView();
          GetWindowRect(&rc);
          rx = cx/rc.Width();
          ry = cy/rc.Height();       //得到一个控件的句柄
          CWnd *pwnd = pview->GetDlgItem(IDC_BUTTON_PARASET);
          pwnd->GetWindowRect(&rc1);
    //重新调整这个控件的大小和位置
           rc1.right = rc1.left + rc1.Width()*rx;
          pwnd->MoveWindow(&rc1);
    CFrameWnd::OnSize(nType, cx, cy);
    }但是,每次在CWnd *pwnd = pview->GetDlgItem(IDC_BUTTON_PARASET);出错。
    不知道大家有什么高招,谢谢!
      

  2.   

    在第一次产生wm_size时窗口上的控件并未产生,所以会出错...
    正确的用法是在Movewindow之前选判断该控件的句柄是否有效
      

  3.   

    CWnd *pwnd = pview->GetDlgItem(IDC_BUTTON_PARASET); //好像不能写在这吧。