EDIT属性里将“Multiline”改为True
代码实现:
void CDEMODlg::writeInfo(CString& info)
{
CString info_ = L"[main] ";
info_ = info_ + info + L"\r\n";
CString strOutput;
m_static.GetWindowTextW(strOutput);
strOutput += info_;
m_static.SetRedraw(FALSE);
m_static.SetWindowTextW(strOutput);
int lines = m_static.GetLineCount();
int counts = strOutput.GetLength();
m_static.LineScroll(lines, 0);
m_static.SetSel(counts, counts);
m_static.SetRedraw(TRUE);
}
1)字符串需要累加,也就是说实际上每次输出都是完全更新
2)每行字符串里添加‘\r\n’标记换行
3)SetRedraw先强制关闭是为了避免滚动条先跳到第一行再回到最后一行
4)LineScroll设置滚动条到最后一行
5)SetSel设置光标到最后一行