欲在edit box中输出多行,结果却总是在一行输出。在网上搜了半天,还是没能解决我的问题。
首先 网上众多方法中, VS编程中换行以 "\r\n" 结尾是必须的, edit box属性 Multiline 为 TRUE 是必须的。want return属性是控件是否可接受回车键, 不是必须的, 这个是指在输入的时候是否可以用回车键。
其次,在VC中 只需要str += "\r\n" 即可, 但是在vs下, 需要用 str += L"\r\n" , 注意r n的顺序一定不能错, 因为这个粗细,调了半天才发现。
一般这样就能够实现了,但是我还是没有实现换行,调试了很久,终于发现了原因所在。
如下程序:
CString str;
str = "good";
GetDlgItemText(IDC_EDIT_R,tempStr); // 获取 edit box内文字
tempStr += L"\r\n"; //文字末尾添加换行
str += tempStr; // "good" + ”edit box内文字" + 换行
SetDlgItemText(IDC_EDIT_R,str); //输出到 edit box
该程序循环几次, 预期的效果应该是在edit box 输出多行 good, 结果却是在一行输出,
将程序改为
str += L"\r\n"; // 使程序变为 "good" + 换行 + "edit box内文字"
换行成功。
分析原因可能是因为 在字符串末尾加的 “换行符” , 在输出时被省掉了,或者是在 GetDlgItemText 读取时被省掉了。 (深层原因我就不清楚了。。运行结果是这样的)