Давайте рассмотрим задачу поместить на диалоговую панель элемент управления, например, CListBox и сделать так, чтобы при изменении размера диалоговой панели размер элемента изменялся под размер диалоговой панели.
Создаем приложение MFC AppWizard с именем TestSize типа SDI, а базовый класс для вида выберем CFormView.
Помещаем на диалоговое окно формы, а оно будет иметь такой идентификатор IDD_TESTSIZE_FORM. Элемент управления у нас список ListBox и у него идентификатор по умолчанию будет IDC_LIST1. Скомпилируем и запустим приложение.

Мы видим, что элемент управления занимает часть окна, а не все окно. Нам бы хотелось, чтобы он занимал все окно. При изменении размеров формы вызывается функция OnSize() класса формы. Давайте ее перегрузим. Это делается в Add Windows Message handles, сообщение WM_SIZE.
void CTestSizeView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
}
Здесь нам нужно получить ссылку на этот элемент управления и изменить его размер. Давайте сделаем это:
void CTestSizeView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
CListCtrl* ct=NULL;
CRect cr;
GetClientRect(cr);
ct=(CListCtrl*)GetDlgItem(IDC_LIST1);
if (ct) ct->MoveWindow(0,0,cr.right,cr.bottom);
}
Теперь наш элемент управления будет изменять размеры вместе с окном:
