MFC EDIT控件自动显示垂直滚动条

首先设置EDIT控件的属性,如下:

注意:Horizontal scroll 和 Auto HScroll 不要选择。

在OnInitDialog()函数中处理:

// 获取EDIT可以显示的行数 
TEXTMETRIC tm;
CRect rect;
GetDlgItem(IDC_EDIT_INFO)->GetClientRect(&rect);
CDC* pdc = GetDlgItem(IDC_EDIT_INFO)->GetDC();
::GetTextMetrics(pdc->m_hDC,&tm);
GetDlgItem(IDC_EDIT_INFO)->ReleaseDC(pdc);
m_nLineCount = rect.bottom/(tm.tmHeight-1.5);

在需要显示时:

        SetDlgItemText(IDC_EDIT_INFO,strStatus);
int nLine = ((CEdit*)GetDlgItem(IDC_EDIT_INFO))->GetLineCount();
if( nLine > m_nLineCount)
{
GetDlgItem(IDC_EDIT_INFO)->ShowScrollBar(SB_VERT, TRUE);
}
else
{
GetDlgItem(IDC_EDIT_INFO)->ShowScrollBar(SB_VERT, FALSE);
}



你可能感兴趣的:(mfc,scroll)