如何将超过 32000 个字符放入富文本控件中?

如何将超过 32000 个字符放入富文本控件中?

作者:BlogUpdater |  时间:2023-12-08 |  浏览:140 |  评论已关闭 条评论

在上一篇文章中,我们了解了如何将一整个文件的内容加载的富文本控件中。
我们给出的例子代码运作得还挺符合预期的,但会碰到这样一个问题。

有一天,你尝试使用它来显示法律部门提供的许可协议在产品的安装程序中。
这是一篇巨大的文本文件,我们打算使用了富文本控件来显示它。

产品发布了,一切都是那么美好。

对于这份巨大的许可协议,绝大部分的用户一般都扫一眼就跳过到下一步了,但某天一位较真的用户反馈了这样一个问题:为什么我在看许可协议的时候,只能翻到第 6 页,为什么不能看第 7 页呢?

(什么,还真有人看这东西?这是怎么回事?)

对于富文本控件来说,如果你不指定的话,能够载入的最大文本数量是 32767 个字符。
这个限制主要是为了兼容以前老版本的富文本控件。

解决方法

可以通过发送 EM_EXLIMITTEXT 消息来扩展这个限制,代码很简单,如下:
SendMessage(hwnd, EM_EXLIMITTEXT, 0, -1);

注意,以上语句需要在调用 FillRichEditFromStream 之前调用,否则修改将不会生效。

总结

这个小知识点很小,但是它可以解决令人头疼的大问题。
我的大脑袋实在是太需要这类小知识点了。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《How do I put more than 32,000 characters into a rich text control?》

最近我写了个东西

正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

标签:

评论已关闭。