GDIPlus::DrawString计算一定区域显示字符个数的问题

mltong mltong 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最开始的需求是想在一个矩形区域内显示字符串,但需要控制“行间距”。但查了相关资料,好像DrawString并没有直接提供控制行间距的方法。于是利用了有人提出的手动控制输出,即将文本分段,手动控制每行的输出位置。

但现在有个问题是我用MeasureString计算每行能显示的字符个数的时候,文本内容不一样的时候,返回的个数是不一样的。
如果是纯汉字的,返回8,如果带了写数字或者标点符号的时候是5。而我需要根据这个数字去分段原始的文本,假设是后者的情况,如下图


看空间明明可以再显示字符的,可是被换行了。如果顺着这个现象,我似乎应该计算那些显示宽度比较窄的字符,把它们算做半个字符,这似乎也太麻烦了。不知道有什么方法可以简单的解决这个问题,或者能直接解决最原始的问题就更好了。

谢谢!
...全文

相关推荐

GdiPlus使用方法

GdiPlus使用方法开发。博客地址:http://blog.csdn.net/bingdianlanxin,有问题欢迎留言!

冰点蓝欣

[WTL/ATL]_[初级]_[使用Gdiplus::Graphics::DrawString绘制中文字体显示不完整的问题]

场景 在某一次开发应用多语言实现的时候, 使用Graphics::DrawString绘制中文文本时,发现文本显示不完整, 上半部分的有备遮盖的情况, 奇怪的是事实上并没有其他窗口挡住, 而且还是某行文本中的某些字符显示不完整. 而且即使增加绘制字体的区域高度也不行.怎么回事? 图1: 如果Arial字体不能显示中文, 为什么不是全部中文不能显示呢?这个问题我也没搞懂,有知道的童鞋说一下....

白行峰 (花名)

[ATL/WTL]_[Gdiplus]_[关于使用Graphics::DrawString替换DrawText的说明]

场景 在开发WTL或MFC程序时, 绘制文本往往会使用标准的CDC::DrawText函数, 其实也就是调用了GDI的DrawText函数, 但是这个函数绘制出来的文字显示出来的效果会比记事本显示的效果差?什么原因呢. GDI在绘制文本, 线条时总是感觉比较粗糙, 边缘总是有锯齿, 不够平滑. 说明 因为GDI绘制图形时并没有消除锯齿的效果, 绘制出来的文本线条边缘是不平滑的, 这...

白行峰 (花名)

GDIPlus链接库

GDIPlus链接库 高级画图功能 GDIPlus链接库 高级画图功能 GDIPlus链接库 高级画图功能

sticksheng3

VC下的GDIPlus库类

适用于VC的GDI+图像编程,欢迎大家下载。

a99099111
评论 1
收藏 已收藏
分享
返回顶部
mltong
图形处理/算法 19,463 成员 50,678 内容