MFC CEDIT自动换行设置

来源:互联网 发布:java 写sql存储过程 编辑:程序博客网 时间:2024/05/11 19:37

要实现编辑框自动换行,要代码和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;}




0 0