帮忙看一下?

a_stupid_boy 2002-12-19 01:34:08
void CMaxminDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

// TODO: Add your message handler code here

if(nType==SIZE_MAXIMIZED )
{

CRect m_CRect_List=m_oldCRect_List;
CRect m_CRect_Ok=m_oldCRect_Ok;

m_CRect_List.right=m_full_cx-m_CRect_Ok.Width()-m_CRect_List.left;

m_CRect_Ok.left=m_CRect_List.right+5;
m_CRect_Ok.right=m_CRect_Ok.left+m_oldCRect_Ok.Width();

m_ctrl_List.MoveWindow(m_CRect_List);
m_ctrl_ok.MoveWindow(m_CRect_Ok);

}else if(nType==SIZE_RESTORED)
{
m_ctrl_List.MoveWindow(m_oldCRect_List); //have error
m_ctrl_ok.MoveWindow(m_oldCRect_Ok); //have error
}
}

以上程序中m_ctrl_List and m_ctrl_ok 分别为列表与按钮控件,m_oldCRect_List记录最初控件的位置。编译时没有问题,但是运行时却有错误发生(第二个if中说m_ctrl_List不是一个window),为什么第一个IF中就不会有这样的问题呢。


...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_stupid_boy 2002-12-19
  • 打赏
  • 举报
回复
谢谢大家,我知道了,结帐。
hnyyy 2002-12-19
  • 打赏
  • 举报
回复
if(m_ctrl_List.GetSafeHwnd())//这样判断
{
m_ctrl_List.MoveWindow(m_CRect_List);
}
a_stupid_boy 2002-12-19
  • 打赏
  • 举报
回复
楼上的老兄如何判断控件是不是一个窗口啊,问题就是出在这里。
zhaolaoxin 2002-12-19
  • 打赏
  • 举报
回复
在窗口刚刚创建时也要执行OnSize()函数,但此时窗口中的控件还没有创建,所以出现这种错误。
先判断该控件是不是一个窗口。
casinosun 2002-12-19
  • 打赏
  • 举报
回复
应该是其他问题引起的

15,978

社区成员

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

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