void CMy111View::OnSize(UINT nType, int cx, int cy) 
{
CFormView::OnSize(nType, cx, cy);

m_edit.MoveWindow(0,0,cx,cy);

}m_edit是一个CEDIT类,我想移动m_edit,但系统提示出错。

解决方案 »

  1.   

    你先在
    视图的OnInitUpdate()中创建控件
    m_edit.CreateEx(
    WS_EX_CLIENTEDGE,
    "Edit",
    "",
    WS_CHILD|WS_VISIBLE|ES_LEFT,
    CRect(100,100,200,140),
    this,
    WM_USER+100);
    m_edit.ShowWindow(SW_SHOW);然后再在
    void CMy111View::OnSize(UINT nType, int cx, int cy) 
    {
    CFormView::OnSize(nType, cx, cy);
    if(::IsWindow(m_edit.m_hWnd))
    m_edit.MoveWindow(0,0,cx,cy);

    }
      

  2.   

    或者象下面这样做在OnCreate()里面创建
    ------------------------int CRightView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (CView::OnCreate(lpCreateStruct) == -1)
    return -1;

    m_wndEdit.Create(WS_VISIBLE|WS_CHILD|ES_MULTILINE|WS_VSCROLL|ES_AUTOVSCROLL,CRect(0,0,0,0),this,0);

    CFont font;
    font.CreateStockObject(ANSI_FIXED_FONT);
    m_wndEdit.SetFont(&font);

    return 0;
    }void CRightView::OnSize(UINT nType, int cx, int cy) 
    {
    CView::OnSize(nType, cx, cy);

    m_wndEdit.MoveWindow(1,23,cx-2,cy-24);

    }
      

  3.   

    Do you have create m_edit?
      

  4.   

    可能在调用OnSize()的时候,m_edit还没有创建,就会出错。像上面几位判断一下m_edit的有效性,再对其操作,就不会有问题了。