当窗口被MoveWindow时,为什么不能这样改变控件的大小和位置?该怎么解决

当窗口被MoveWindow时,为什么不能这样改变控件的大小和位置?
注:CChildWindow是由别的窗口的InitDialog里创建:
m_cw.Create(IDD_DIALOG1);
m_cw.MoveWindow(CRect(10,   10,   100,   100));
m_cw.ShowWindow(SW_SHOW);


void   CChildWindow::OnSize(UINT   nType,   int   cx,   int   cy)  
{
CDialog::OnSize(nType,   cx,   cy);

CRect   rt,   srt;
GetWindowRect(&rt);
rt.SetRect(rt.left+rt.Width()-20,  
rt.top,
rt.right,   rt.bottom);
ScreenToClient(&rt);

m_scrollBar.MoveWindow(rt);   //运行会出错,说m_sc不是一个窗口。
}

------解决方案--------------------
试试(HWND)GetDlgItem(m_scrollBar的ID)-> MoveWindow(rt)
------解决方案--------------------
试试这样:

if(m_scrollBar.GetSafeHwnd())
m_scrollBar.MoveWindow(rt);