下面是代码,演示由一个按钮来改变编辑框尺寸,你可以将代码放在适当的地方
void CMy2222Dlg::OnButton2() 
{
//这个可是我花了70分的代价,由几位大侠总结出来的 char *s = "12345678900987654321";//假设要显示在编辑框中的字符串 CDC* pDC = m_ExpandEdit.GetDC();//m_ExpandEdit是你的对话框
CFont * pFont = m_ExpandEdit.GetFont();
CFont * pOldFont = pDC->SelectObject(pFont); //这个与下面注释掉的任选其一
int nWidth = (pDC->GetTextExtent( s )).cx;/*
CRect rcBox;
::DrawText( pDC->m_hDC,
s,
-1,
&rcBox,
DT_CALCRECT | DT_SINGLELINE
);
int nWidth = rcBox.right - rcBox.left;
*/
CRect rc;
m_ExpandEdit.GetWindowRect( &rc );
m_ExpandEdit.SetWindowPos(//改变尺寸
NULL,
0,0,
nWidth,rc.Height(),
SWP_NOMOVE | SWP_DRAWFRAME | SWP_NOZORDER
);
m_ExpandEdit.SetWindowText( s );//设置内容 pDC->SelectObject(pOldFont); 
m_ExpandEdit.ReleaseDC(pDC); 
}