求控件大小随窗口大小变化的步骤

求控件大小随窗口大小变化的方法
如题,当dialog大小变化的时候,我希望listctrl也一起变化。尝试了如下方法:

 pWnd = GetDlgItem(IDC_LIST);     //获取控件句柄
 if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
 {
  CRect rect;   //获取控件变化前大小
  pWnd->GetWindowRect(&rect);
  ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
  // cx/m_rect.Width()为对话框在横向的变化比例
  rect.left=rect.left*cx/m_rect.Width();/////调整控件大小
  rect.right=rect.right*cx/m_rect.Width();
  rect.top=rect.top*cy/m_rect.Height();
  rect.bottom=rect.bottom*cy/m_rect.Height();
  pWnd->MoveWindow(rect);//设置控件大小
 }
 GetClientRect(&m_rect);//将变化后的对话框大小设为旧大小
通过上面的方法确实能实现listctrl随窗口大小变化。但是变化之后listCtrl没有垂直滚动条和和水平滚动条了。请问怎么才能实现listCtrl的大小随窗口大小变化,且还能有滚动条
------解决方案--------------------
最简单的方法使用EasySize类。
------解决方案--------------------
在DIALOG的OnSize事件中按窗口尺寸设置控件的位置和尺寸
------解决方案--------------------
我使用 Pelles C 附带了一个 C 风格的叫 Resizer 的头文件、源文件和静态库。提供:
CreateResizableDialog/CreateResizableDialogParam,
CreateResizableDialogIndirect/CreateResizableDialogIndirectParam,
ResizableDialogBox/ResizableDialogBoxParam,
ResizableDialogBoxIndirect/ResizableDialogBoxIndirectParam,
这些宏/函数用于创建可调大小的,其自带的对话框设计器支持设置窗口的调整属性,水平方向和垂直方向均可设置为移动或调整大小其一。顾名思义,移动就是尺寸不变,位置跟着对话框走。调整就是左上角保持不动,尺寸跟着对话框变化。不过因为这个是纯 C 风格代码,MFC 已经封装好了是没法用。