现使用MFC的Edit Box控件显示文字
定义成员变量:
CFont m_font;
在OnInitDialog()函数中:
m_font.CreatePointFont(200,"华文行楷");
在OnCtlColor()函数中:
CString str;
CRect rect;
CClientDC dc(this);
CSize sz;
if (pWnd->GetDlgCtrlID()==IDC_EDIT_FONT)//IDC_EDIT_FONT为文本框ID
{
pDC->SelectObject(&m_font);
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(0,255,0));
GetDlgItem(IDC_EDIT_FONT)->GetWindowRect(rect);
ScreenToClient(rect);
GetDlgItemText(IDC_EDIT_FONT,str);
sz=dc.GetTextExtent(str);
GetDlgItem(IDC_EDIT_FONT)->MoveWindow(20,100,sz.cx,sz.cy);
}
运行程序,结果如下图,文本框控件无法完全显示内容(“TODO: 在这里设置对话控制。”),即文本框无法根据字体尺寸变化动态调整尺寸。
请问是什么原因?如何修改?