在上一篇文章中,我们了解了如何将一整个文件的内容加载的富文本控件中。
我们给出的例子代码运作得还挺符合预期的,但会碰到这样一个问题。
有一天,你尝试使用它来显示法律部门提供的许可协议在产品的安装程序中。
这是一篇巨大的文本文件,我们打算使用了富文本控件来显示它。
产品发布了,一切都是那么美好。
对于这份巨大的许可协议,绝大部分的用户一般都扫一眼就跳过到下一步了,但某天一位较真的用户反馈了这样一个问题:为什么我在看许可协议的时候,只能翻到第 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?》