注册 登录
编程论坛 C++教室

C++ MFC LISTBOX控件 字符串自动换行问题

鸿蒙之灵 发布于 2019-02-26 21:07, 3858 次点击
原型:在对话框控件中,有一个LISTBOX控件,一列多行格式,或者两列多行也可以,输出内容格式为:  XXXX-XX-XX XX-XX-XX    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
例如:2019-02.26 21:00:52  用户Mary远程登录身份验证成功;

由于该字符串有时候会比较长,所以需要自动换行,最好能够适应窗体,如不能适应窗体,指定长度也可以,本人曾试过用数组提前分割,然后调用库函数写入控件,并利用定时器实时刷新控件显示,但由于字符串中含有字母文字组合,所以分割算法末尾会出现将一个汉字分割的情况,有没有能够实现自动换行的库函数,不太想弄分割的算法;

如果有实现过LISTBOX控件自动换行的大佬,麻烦告知需要调用的函数或需要修改的控件属性,代码我可以自己去写,相关原型函数,也可以自己查找阅读;谢谢!
3 回复
#2
rjsp2019-02-27 08:32
LISTBOX 为什么需要换行?

“分割算法末尾会出现将一个汉字分割的情况” ------ 估计你用的是 multibyte character,那你可以用 isleadbyte 判断其是不是一个汉字的地位
#3
鸿蒙之灵2019-03-19 18:09
回复 2楼 rjsp
多谢,那如果我拖动鼠标调整对话框的大小,如何实现一行的输出长度适应显示有效区域的大小来自动实时调节换行位置,有没有可以实现的函数可供调用或参考

[此贴子已经被作者于2019-3-19 18:11编辑过]

#4
rjsp2019-03-20 09:17
如何实现一行的输出长度适应显示有效区域的大小

你这里的“一行”是什么控件的,Edit Box?
1