当前位置: 首页 > article >正文

[Gdiplus/Gdi]_[中级]_[实现多行文本的多种颜色绘制-富文本绘制]

场景

  1. 在开发WTL/WIN32界面程序时,有时候需要绘制多行的段落文本,但是文本里的数值需要设置红色以便能让人第一时间关注到它。这种文本可以称之为富文本。GDIDrawTextGDIPlusDrawString方法都只能连续绘制某个颜色的文本。怎么实现?

说明

  1. 在《绘图实现单行文本的多种颜色》[1]里介绍了绘制单行多种颜色文本的实现,但是并不支持换行,换行需要知道上一行绘制的文本长度和换行后的文本起始位置,实现起来并不容易。

  2. 要实现多行富文本,那么关键的方法是计算一行字符串在给定以下的3个重要的参数计算当前行需要绘制的字符个数,之后把剩余的字符串交给下一行绘制。方法calcOneLineFitStringLength就是只存储给定行剩余宽度绘制适合个数的字符串,把剩余的字符递归传递给calcOneLineFitStringLength本身计算并存储。

    1. 起始横坐标x

    2. 纵坐标y</


http://www.kler.cn/news/366813.html

相关文章:

  • 散列表:为什么经常把散列表和链表放在一起使用?
  • VUE前端按钮添加遮罩层
  • 《 C++ 修炼全景指南:十七 》彻底攻克图论!轻松解锁最短路径、生成树与高效图算法
  • day3:管道,解压缩,vim
  • 硬件安全逻辑混淆技术讲稿及PPT
  • GeoWebCache1.26调用ArcGIS切片
  • 如何通过sip信令以及抓包文件分析媒体发到哪个地方
  • DEVOPS: 容器与虚拟化与云原生
  • java第三天(游戏开发)
  • grafana 和 prometheus
  • [论文阅读] Improved Baselines with Visual Instruction Tuning
  • ubuntu(27):ubuntu20.04鼠标无法显示但远程控制可以使用
  • 51c大模型~合集4
  • 重学SpringBoot3-集成Hazelcast
  • 基于GPT的智能客服落地实践
  • 深入解析Apache DolphinScheduler容错机制
  • 如何用 obdiag 排查 OceanBase数据库的卡合并问题——《OceanBase诊断系列》14
  • Sourcetree和GitLab的结合使用
  • Mac 使用脚本批量导入 Apple 歌曲
  • 【力扣 + 牛客 | SQL题 | 每日4题】牛客大厂面试真题W3,W10
  • Protues中51单片机按键无法复位(已解决)
  • 【多态案例】电脑组装
  • 如何使用python seaborn进行复杂的数据可视化操作?
  • 使用API有效率地管理Dynadot域名,通过域名命令删除域名服务器(NS)
  • canvas-editor首行缩进
  • Python爬虫,初识xpath(1)