读书人

DrawText遇到的麻烦有兴趣的进来看看

发布时间: 2012-02-21 16:26:23 作者: rapoo

DrawText遇到的麻烦,有兴趣的进来看看!
用DrawText绘制一句文本,
用来测试的文本是“文本000aaabbbccc9900a”,目标位图的宽度放不下这些字符,从9那个被截掉了(如图1).
图片见:http://javenreal.googlepages.com/break.htm

加上了“DT_WORDBREAK”后,换行倒是换了,但没有按预期从9那里换,而是从0那里就换了(如图2).用了传说中的“DT_EDITCONTROL” 也没有起色。
用了DrawTextEx,效果和不带Ex的相同。

谁有办法让DrawText严格按照“字符”换行,而不要按照“单词”换行??

其实这个问题应该有很多人遇到过,不知道有没有人解决。

另,我是在c#里边用,c#找不到方法所以用vc试试,如果有人能直接在c#下解决更好!

[解决办法]
“文本000aaabbbccc9900a”,中间直接用换行符号\n不就行了
[解决办法]
用\r\n换行就可以了
如要自动换行的话,你可以通过获取字符的宽度然后计算一下就行了
[解决办法]
不是说了么
根据位置的宽度来计算
因为每个字符的宽度是固定的,位置宽度已知,除一下不就知道在哪里插换行了
[解决办法]
ls 的是正解...
[解决办法]
那你想到底精确到什么地步??
你能保证你的位图的宽度刚好能容纳你字符串的一段?
你不赚麻烦就用getcharwidth32或是其它的方法一个字符一个字符的计算吧

[解决办法]
combine the second one with DT_NOFULLWIDTHCHARBREAK
[解决办法]
厄~
C#就完全不懂了~ 帮不上了~ :(
[解决办法]
学习了

读书人网 >VC/MFC

热点推荐