我的代码:
CPoint point1(10,10);
CPoint point2(150,150);//设置输入域的大小并创建输入域
m_pTextEdit->Create(WS_VSCROLL|WS_HSCROLL|ES_MULTILINE | ES_WANTRETURN | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
    CRect(point1,point2), pView, 1);
this->SetTextEditPosition(pDC,pView,point);
m_pTextEdit->SetFocus();//不用鼠标点击,使光标置于edit框内请问输入完毕后如何调整edit框的大小,使其刚好容纳输入的text,多谢!

解决方案 »

  1.   

    在相应地方里获得text,然后GetTextMetrics()获得text的TEXTMETRICS,由TEXTMETRICS的tmWidth成员×strlen(text),最后就可以调整edit框的大小了,当然,考虑到边框要保留一定的空间,可以加上一个常数,具体你可以试试。
      

  2.   

    同意楼上,得到字符串的宽度后,用MoveWindow就可以调整edit框的大小了。
      

  3.   

    void CListCtrlDlg::OnChangeEdit1() 
    {
    CString strText ;
    CWnd * pWnd = GetDlgItem(1);
    pWnd ->GetWindowText(strText);
    CRect r(0,0,0,0);
    CDC *pDC = GetDC();
    pDC->DrawText(strText,&r,DT_LEFT|DT_CALCRECT);
    CRect rect(10,10,10,10);


    rect.right = rect.left + r.Width() +10 ;
    rect.bottom = rect.top + r.Height() + 5;
    pWnd->MoveWindow(&rect);
    }
      

  4.   

    当然你也可以在它失去焦点时处理你在对话模框中加一个同ID的按钮
    ctrl+w打开类向导
    就可以加响应函数了
      

  5.   

    推荐使用 he_zhidan(何志丹:壮志在我心) 的方法
      

  6.   

    GetTextExtentPoint32更强大
    或者GetTextExtentPoint都是api