VS下C++ 解决 edit box 换行问题

欲在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 读取时被省掉了。 (深层原因我就不清楚了。。运行结果是这样的)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值