关于DrawText
标志的MSDN文档不是特别清楚。
仍然允许DT_NOFULLWIDTHCHARBREAK
与非CJK语言一起使用吗?它如何破坏CJK语言?如果我理解正确,那么这些语言就不会像英语那样使用空格。 DT_WORDBREAK
是否具有识别CJK单词的特殊规则,还是会在片假名单词中间中断?
最佳答案
尽管使用了旧术语,但是文档却说了它的作用。 “防止在DBCS(双倍宽字符串)处出现换行,以便换行规则等效于SBCS字符串。” DBCS是从代码页时代遗留下来的旧术语。您可以将其视为“全角字符”。全角字符的示例是CJK统一表意文字,平假名,片假名和韩文字符。
默认情况下,全角字符被视为有效的断点。使用DT_NOFULLWIDTHCHARBREAK
禁用此行为。
换一种说法:
未设置
DT_WORDBREAK
:没有断字。 DT_WORDBREAK
,但未设置DT_NOFULLWIDTHCHARBREAK
:换行符在空格和全角字符处进行。 DT_WORDBREAK
和DT_NOFULLWIDTHCHARBREAK
都设置了:仅在空白处才进行分词。 该代码不进行任何语言分析以识别片假名单词的开始和结束位置。
关于c++ - 调用DrawText时DT_NOFULLWIDTHCHARBREAK有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29640012/