要实现编辑框自动换行,要代码和ide同时完成。
IDC_EDIT_SIGNIN 编辑框的id
m_signin 编辑框的value变量
m_ctlSignin 编辑框的control变量
代码部分:
int CnetpDlg::singin_show(char *buf)
{
int ret = ok;
CHECK_RET(buf != NULL, -1);
CString strt(buf);
strt += "\r\n";
m_signin += strt;
GetDlgItem(IDC_EDIT_SIGNIN)->SetWindowTextA(m_signin);
return ret;
}
IDE部分:
1、编辑框属性中将 Multiline 设置为 true;Vetrical Scroll 设置为true,目的是当输入或显示超过编辑框的大小后就会出现垂直滚动条。
2、如果是输入,滚动条会自动移动跟随到当前输入行,但是如果是设置将很多内容一次性让编辑框显示,滚动条就会一直处于最上方,需要手动拉到最下面才能看见最后一行的内容,在很多时候这是我们不需要的,而是想要滚动条处于最下方,如下的代码将实现这一功能:
在上面函数的GetDlgItem(IDC_EDIT_SIGNIN)->SetWindowTextA(m_signin);下面增加下面的代码,就可以实现。
m_ctrlSignin .LineScroll(m_ctrlSignin .GetLineCount());
最终的代码是:
int CnetpDlg::singin_show(char*buf)
{
int ret = ok;
CHECK_RET(buf != NULL, -1);
CString strt(buf);
strt += "\r\n";
m_signin += strt;
GetDlgItem(IDC_EDIT_SIGNIN)->SetWindowTextA(m_signin);
m_ctrlSignin.LineScroll(m_ctrlSignin.GetLineCount());
return ret;
}