获得字符宽度的问题?

fhw217 2016-02-21 04:12:23
我现在正在做一个纯文本编辑器,要实现自动折行功能,我用的是CDC::GetCharWidth逐个字符获得宽度,如果超过右边界就折行,打开2M的文本文件时,用时是10秒左右,而用Windows自带的写字板只需要1秒,UltraEdit和VS2010也只需要1秒,请问有没有更快的函数或好的算法?
...全文
185 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-02-22
  • 打赏
  • 举报
回复
仅处理可见部分?
笨笨仔 2016-02-21
  • 打赏
  • 举报
回复
引用 楼主 fhw_bin_dl 的回复:
我现在正在做一个纯文本编辑器,要实现自动折行功能,我用的是CDC::GetCharWidth逐个字符获得宽度,如果超过右边界就折行,打开2M的文本文件时,用时是10秒左右,而用Windows自带的写字板只需要1秒,UltraEdit和VS2010也只需要1秒,请问有没有更快的函数或好的算法?
你使用实测方式计算肯定会慢,使用(字宽+间隔)*字数的方式估计会快点。
schlafenhamster 2016-02-21
  • 打赏
  • 举报
回复
使用线程"打开2M的文本文件"
dustpg 2016-02-21
  • 打赏
  • 举报
回复
DirectWrite接口,直接由有文本布局。 微软自己写的Windows接口,性能应该不错,自己还没做压力测试。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧