请教:OnSize()中调用MoveWindow()出错、??

LiGo 2003-08-06 07:43:22

响应对话框的WM_SIZE消息,来动态改变对话框上控件的位置何大小。

代码如下:
void CMy111Dlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
switch (nType)
{
case SIZE_MAXIMIZED:
m_tree.MoveWindow(0,0,cx*3.0/8,cy);
m_list.MoveWindow(cx*3.0/8,0,cx*5.0/8,cy*5.0/8);
m_edit.MoveWindow(cx*3.0/8,cy*5.0/8,cx*5.0/8,cy*3.0/8);
break;
/* case SIZE_RESTORED:
* m_tree.MoveWindow(0,0,cx*3.0/8,cy);
* break;
*/
default:
break;
}
}
其中/***/注释掉程序可以正常运行,就是只能响应窗口最大化的消息,可是怎么响应
窗口的大小任意改变呢??

如果把/***/部分注释掉,run出错为:

void CWnd::MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint)
{
ASSERT(::IsWindow(m_hWnd));//////ASSERT出错??????????

if (m_pCtrlSite == NULL)
::MoveWindow(m_hWnd, x, y, nWidth, nHeight, bRepaint);
else
m_pCtrlSite->MoveWindow(x, y, nWidth, nHeight, bRepaint);
}


请高手指教,聆听ing!
...全文
175 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaosl11 2003-08-06
  • 打赏
  • 举报
回复
if(m_tree.GetSafehwnd())//先判断一下
m_tree.MoveWindow(0,0,cx*3.0/8,cy);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧