DrawText
的MSDN文档对于DT_NOFULLWIDTHCHARBREAK
标记并不是特别清楚。
是否仍允许DT_WORDBREAK
使用非CJK语言?它如何打破CJK语言?如果我理解正确,那些语言就不会像英语那样使用空格。 DT_NOFULLWIDTHCHARBREAK
是否有特殊的规则来识别CJK单词,还是会在片假名单词的中间打破?
答案 0 :(得分:4)
文档说它做了什么,虽然它使用了旧的术语。 "防止在DBCS(双宽字符串)处换行,以便换行规则等同于SBCS字符串。" DBCS是从代码页天开始延续的旧术语。您可以将其视为"全角字符"。全角字符的示例是CJK统一表意文字,平假名,片假名和韩文字符。
默认情况下,全角字符被视为有效的分词点。使用DT_NOFULLWIDTHCHARBREAK
禁用此行为。
换句话说:
DT_WORDBREAK
未设置:不会发生任何字断裂。DT_WORDBREAK
已设置,但未设置DT_NOFULLWIDTHCHARBREAK
:在空格和全角字符处进行分词。DT_WORDBREAK
和DT_NOFULLWIDTHCHARBREAK
都设置:仅在空格处进行单词分隔。代码不进行任何语言分析来识别片假名词的开头和结尾。