首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-04-04 
当窗口被MoveWindow时,为什么不能这样改变控件的大小和位置?注:CChildWindow是由别的窗口的InitDialog里创

当窗口被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);

热点排行