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

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

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

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

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

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 13:40:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 13:40:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 13:40:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 13:40:07       18 阅读

热门阅读

  1. QT作业1

    QT作业1

    2023-12-08 13:40:07      38 阅读
  2. Spring Task

    2023-12-08 13:40:07       39 阅读
  3. Swagger PHP Thinkphp 接口文档

    2023-12-08 13:40:07       47 阅读
  4. 一、C#笔记

    2023-12-08 13:40:07       34 阅读
  5. QT学习随记 (二)—— QT基础

    2023-12-08 13:40:07       38 阅读
  6. 一起学习云计算

    2023-12-08 13:40:07       36 阅读
  7. 我的创作纪念日

    2023-12-08 13:40:07       51 阅读
  8. Ubuntu环境下使用nginx实现强制下载静态资源

    2023-12-08 13:40:07       37 阅读
  9. Ubuntu开机出现Welcome to emergency mode解决办法

    2023-12-08 13:40:07       58 阅读
  10. Appium:iOS部署

    2023-12-08 13:40:07       35 阅读