我用MFC编辑了一个界面,其中在一个静态控件的CRect上显示一个子对话框,现在有个问题,我设置可以改变对话框大小,在改变对话框大小的时候,同时改变控件的大小并改变子对话框的大小,现在有个问题,就是改变子对话框大小时在OnSize函数是要提取静态控件的CRect时弹出一个Debug错误,中断后在静态控件的变量m_show.GetWindowRect()这句出现,ASSERT这个GetWindowRect,我想问问这个地方应该怎么处理。

解决方案 »

  1.   

    在OnSize中,先判断这个控件的m_hWnd是否为空,为空则直接return。
    对话框第一次运行OnSize时,控件还没有创建。所以当控件的m_hWnd为空时不需要做处理。
      

  2.   

    估计是在子控件还没有创建好,父窗口就开始相应WM_SIZE消息了。
    调用GetWindowRect之前判断一下
     IsWindow(m_show.m_hWnd)